Python物件導向(三)

2021-10-03 19:37:11 字數 1475 閱讀 4634

多型:不同的子類物件呼叫相同的父類方法,產生不同的執行效果,不同效果的產生以在子類中重寫父類方法為前提。

在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 分而治之 拿到需求之後,分析需求,將需求拆解為不同的...