多型:不同的子類物件呼叫相同的父類方法,產生不同的執行效果,不同效果的產生以在子類中重寫父類方法為前提。
在python中類是乙個特殊的物件,既然類是物件,那麼類也具有類屬性和類方法
1.類屬性概念和使用:
類屬性通常用來記錄與這個類相關的特徵,類屬性不會用來記錄具體物件的特徵,例如給類定義乙個count屬性來記錄該類建立了多少個例項,**如下:
class
tool
(object):
# 1.使用賦值語句定義類屬性,記錄採用tool類建立例項的總數
count =
0def
__init__
(self, name)
: self.name = name
# 2.記錄乙個例項的建立,使用「類名.類屬性」方式引用
tool.count +=
1
2.類方法概念和使用:
類方法定義語句:
class
tool
(object):
@classmethod
# 需使用修飾器@classmethod來指明是類方法
def 類方法名(cls)
:# cls可以採用其他命名,但約定採用cls
function(cls.propertis)
pass
# 呼叫類方法
tool.類方法名(
)
如果在類中封裝乙個方法,這個方法既不需要訪問物件屬性和使用物件方法,
也不需要訪問類屬性和使用類方法,這時可以將該方法封裝成乙個靜態方法。
定義語句:
class
puppy
(object):
# 1.run方法不訪問物件屬性也不呼叫物件方法,
# 可以將run方法設定為靜態方法
defrun
(self)
:print
('the puppy is running.'
)# 2.靜態方法定義方式,使用修飾器@staticmetod
@staticmethod
defbark()
:print
('the puppy is barking.'
)# 3.呼叫靜態方法:類名.靜態方法名()
puppy.bark(
)
類屬性:採用賦值語句定義
例項屬性:在初始化方法中定義
類方法:使用修飾器 @classmethod def method(cls)
例項方法:def method(self)
靜態方法:使用修飾器 @staticmethod def method()
python 物件導向(三)
繼承 一般寫 時,是乙個類乙個檔案,所以當類繼承時,需要呼叫模組 設父類 子類都在乙個目錄下,父類為free.py,子類為fuze.py 第一種繼承 父類 class lexname name def init self,name self.name name def hello self,a,na...
python物件導向基礎(三)
身份運算子用於比較兩個物件的記憶體位址是否一致 是否是對同乙個物件的引用 運算子描述 例項is is 是判斷兩個識別符號是不是引用同乙個物件 x is y,類似 id x id y is not is not 是判斷兩個識別符號是不是引用不同物件 x is not y,類似 id a id b is...
python物件導向三大特性
定義 封裝一些資料和方法,只給外界提供必要的功能,掩蓋細節,提高 復用性和系統安全性。資料角度 用乙個類包裝多個變數,還可以定義方法,運算元據 行為角度 不同程式設計師開發乙個專案的不同功能,在使用時,直接呼叫,不需要思考其內部實現 設計角度 1 分而治之 拿到需求之後,分析需求,將需求拆解為不同的...