多型指的是一類事物有多種形態。
定義:多型是一種使用物件的方式,子類重寫父類方法,呼叫不同子類物件的相同父類方法,可以產生不同的執行結果。
class
dog:
defwork
(self)
:pass
class
armydog
(dog)
:def
work
(self)
:print
("追擊敵人。。。"
)class
drugdog
(dog)
:def
work
(self)
:print
("追擊毒品。。。"
)class
person
:def
work_with_dog
(self, dog)
: dog.work(
)ad = armydog(
)dd = drugdog(
)da = person(
)da.work_with_dog(ad)
da.work_with_dog(dd)
class
dog:
tooth =
100xiaohei = dog(
)print
(dog.tooth)
print
(xiaohei.tooth)
類屬性的優點:類屬性只能通過類名直接修改,不能通過例項物件修改,如果通過例項物件修改類屬性,表示的是建立了乙個例項屬性。記錄的某項資料 始終保持一致時,則 定義類屬性
例項屬性 要求 每個物件 為其 單獨開闢乙份記憶體空間 來記錄資料,而類屬性 為全類所共有,僅占用乙份記憶體,更加節省記憶體空間。
class
dog:
tooth =
100dog.tooth =
5220
xiaohei = dog(
)xiaohei.tooth =
250print
(dog.tooth)
# 5220
print
(xiaohei.tooth)
# 250
類方法中 需要使用類物件(如訪問私有類屬性等)時,定義類方法。
類方法一般和類屬性配合使用。
class
dog:
__tooth =
10 @classmethod
defget_tooth
(cls)
:return cls.__tooth
dog = dog(
)print
(dog.get_tooth())
# 10
print
(dog.get_tooth())
# 10
需要通過裝飾器 @staticmethod 來進行修飾,靜態方法既不需要傳遞類物件也不需要傳遞例項物件(形參沒有self/cls)靜態方法 也能通過例項物件和類物件去訪問
當方法中既不需要使用例項物件(如:例項物件,例項屬性),也不需要使用類物件(如類屬性、類方法、建立例項等)時,定義靜態方法。
取消不需要的引數傳遞,有利於減少不必要的記憶體占用和效能消耗。
class
dog:
@staticmethod
definfo_print()
:print
("這是乙個靜態方法"
)dog = dog(
)print
(dog.info_print())
print
(dog.info_print(
))
python 類屬性 用處 Python類屬性詳解
類屬性1.類定義後就存在,而且不需要例項化 2.類屬性使得相同類的不同例項共同持有相同變數 類屬性例項 attrb.py class testcss cssa class attribe def init self self.a 0 self.b 10 def info self print a s...
Python 類屬性和例項屬性
一 簡述二者區別 對類屬性的修改可被儲存在類中 單例模式就是基於類屬性的這種特性 修改後的屬性能夠被子類繼承 例項屬性的修改只對該例項有效,不會對其他例項和其對應類的子類例項造成影響 二 來看下例子 類屬性 class a object a 1 pass print a.a 檢視a類的屬性a,結果為...
python 例項屬性和類屬性
如何在乙個類中定義一些常量,每個物件都可以方便訪問這些常量而不用重新構造?第乙個問題,在 python 的類裡,你只需要和函式並列地宣告並賦值,就可以實現這一點,例如這段 中的 welcome str。一種很常規的做法,是用全大寫來表示常量,因此我們可以在類中使用 self.welcome str ...