Python3 物件導向程式設計 類

2022-01-11 14:29:02 字數 2238 閱讀 4210

一、自定義類

1、屬性與方法

格式:

class

classname:

def__init__

(self,a,b):

self.a=a

self.b=b

def ...

>一般都有乙個__init__函式來定義屬於這個類的引數,前後都被"__"包圍的函式為特殊方法

;以"__"開頭的變數只能讀,不能寫,相當於private資料。

>如果重新實現str,repr等方法,值應使用表象形式:

def

__str__

(self):

return

"(,)

".format(self)

>如果呼叫乙個類的方法,python就會自動在類樹中進行回溯,如果一直找不到就會產生乙個attributeerror.

>在方法前加super()表示呼叫基類的方法,總是呼叫super().__init__()是乙個種合理的做法。

>自定義類的所有例項都支援==,這種比較總是返回false,通過對特殊方法__eq__()進行重新實現,__ne__()也會跟著自動實現。

>如果我們希望避免不適當的比較,可以使用斷言(如:assert isinstance(other,point));也可以用產生typeerror異常來宣告不支援這兩個物件的比較操作(如:if not isinstance(other,point):raise typeerror());方法三:if not isinstance(other,point):return notimplem-emted,但只有在類只對比較特殊方法進行了重新實現才可能返回notimplemented。

>isinstance()為內建的函式,以乙個物件與乙個類(或類構成的元組)為引數,如果物件屬於給定的類,或基類,就返回true。

>object提供的比較的特殊方法:__lt__(),__le__(),__eq__(),__ne__(),__ge__(),__gt__()。

2、繼承與多型

class

classname2(classname):

def__init__

(self)

...

classname2是classname的繼承類。

多型:給定類的任意物件在使用時都可以看作該類的任意某個基類的物件。

3、使用特性進行屬性的訪問控制

修飾器(decorator):是乙個函式,該函式以乙個函式或方法為引數,並返回引數「修飾後」版本。使用修飾器以@符號引導來進行標記。

例(用內建的property()函式對a的屬性進行修飾,使a必須為大於0的數):

@property

defa(self):

return self.__a

@a.setter

defa(self,a):

assert a>0,"

a must be nonzero and non-negative

"self.

__a=a

每個建立的特性都包含getter,setter,deleter等屬性。

4、建立完全整合的資料型別

對於不想要的來自於基類的方法,可以用raise error的來取消這些方法的使用。對於要同時取消多個類的情況,可以借助內建的exec()函式來實現,它會動態地執行從給定物件傳遞來的**。

二、自定義組合類

組合型別的特殊方法:

__contains__(self,x)     x in

y__delitem__(self,k) del

y[k]

__getitem__

(self,k) y[k]

__iter__(self)   for x in y :pass

返回序列中y中的項或對映y中鍵的迭代子

__len__

(self)   len(y)

__reversed__

(self)   reversed(y)

__setitem__(self,k,v) y[k]=v

對於賦值=後邊的值也可以用or,如果第乙個值為false,則使用or後邊的值(a= b or 3)。

Python3 物件導向程式設計(類和物件)

今天想和大家聊聊物件導向中的類和物件,其實一開始我學的雲裡霧裡,借鑑了乙個我以前看到過的解釋,希望可以用大家容易理解的方式來說道說道。生活中每乙個具體的東西都可以被認為是物件,例如華為p40 小公尺10 蘋果11 oppo等手機,你可以認為這些物體是 物件 雖然他們各不相同 各有特色,但是都可以歸結...

Python3 物件導向程式設計

python使用class關鍵字來定義類 class car definfor self print this is a car car car car.infor 內建方法isinstance 來測試乙個物件是否為某個類的例項 公有成員 既可以在類的內部訪問,也可以在外部程式中使用 在idle環境...

Python3物件導向程式設計總結

自學筆記 邏輯可能比較混亂,想到哪說到哪,可能存在不少的問題歡迎指出。最簡單的乙個類 在python中類的命名必須以字母或者下畫線開頭,並且只能包含字母 下畫線和數字。另外推薦使用駝峰命名方式 大寫字母開頭,隨後的任意乙個單詞都以大寫字母開頭 python最簡單的乙個類的建立 class myfir...