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...