python 物件導向筆記

2021-10-12 13:49:48 字數 2674 閱讀 7718

1、繼承

super()

多繼承 近似廣度優先 c3演算法

2、私有屬性、私有方法

在self.age的age、def breath的age和breath前多加倆下劃線,外部訪問不了,在class例項中可以訪問得到

3、訪問私有方法與屬性

a._dog__sh() #dog是類名

4、丟擲異常

raise 異常型別(「內容」) #可提醒子類重寫父類方法

5、類方法

@classmethod 裝飾,把self本身變成類本身

不能訪問例項變數,只能訪問類變數(定義時沒有self的,非例項,寫在def外面的屬於類的變數)

6、類屬性修改

7、靜態方法

@staticmethod裝飾,不能訪問類變數,也不能訪問例項變數,隔斷了它與類和例項的任何關係;名義上只是放在類下;函式輸入變數self變成了輸入變數,不再指代例項

8、屬性方法property

把乙個方法變成乙個靜態的屬性,例如執行類方法不用加(self)了

呼叫方式上是變數,但是外界還是不能修改的;

若還是想修改,則 方法名.setter

9、反射

hasattr(obj,name) #用字串形式判斷物件有沒有該屬性或方法

getattr(obj,name)#獲取

setattr(obj,name,new) #賦值

delattr #刪除

class

dog:

defwalk

(self)

:print

("我碩化"

)dog = dog(

)youwantofind =

input

(">>"

).strip()if

hasattr

(dog,youwantofind)

: func =

getattr

(dog,youwantofind)

print

(func(

))

setattr

def

sh(self)

:print

("111"

)dog = dog(

)setattr

(dog,

"sh"

,sh)

#若是dog換成dog,則下一行不需要傳入例項

dog.sh(dog)

#注意這裡,有點像靜態方法staticmethod

10、反射的妙用#以選單介面為例

想想之前面向過程的編法…

11、雙下劃線方法

(1)len

只要len乙個物件就會觸發

(2)hash方法同

(3)eq

判斷a1==a2時觸發

(4)item系列

只要執行對應的就會觸發

13、析構方法

程式被釋放的時候執行

14、__new__方法,在__init__前執行

#實現單例化

例項名+括號或者類名+括號的時候執行,例如s=school(),s()或school()()的時候執行

16、動態建立乙個類 type

判斷obj是否為該類

18、assert斷言

19.module__和__class

檢視當前操作物件在哪個模組與哪個類

python 物件導向筆記

python 物件導向小結,最近在學習python,在學習到物件導向時有些記不住,特寫此筆記 1.定義類 class people num 0 def sayhello self print hello 2.定義物件 p people p.sayhello 3.建構函式 init class peo...

Python物件導向筆記

1.最簡單的類的定義 class student name lili age 0 sum1 0def init self,name,age,sum1 建構函式 self.name name self.age age self.sum1 sum1 defprint msg self print sel...

python物件導向筆記

封裝繼承 多型class man defeat self print 吃 def slpee self print 睡 建立乙個例項 xm man xm.eat 例項就是類建立出來的物件 dir defdemo test print 這是乙個函式 print dir demo print xm ma...