python之路---18 類與類之間的關系
三十七.類與類之間的關系
一.依賴關系
執行某個動作的時候. 需要xxx來幫助你完成這個操作
隨時可以更換另外一個東西來完成此操作
此時的關系是最輕的.
二.關聯關系(組合關系,聚合關系)
1.一對一關系
2.一對多關系
三.繼承關系 (這是最重的關系)
self在訪問?法的順序: 永遠先找??的. ??的找不到再找?類的
父類 == 基類 == 超類
子類 == 派生類
我們寫的類和對象都是可哈希的
如果加上 __hash__ = None 對象就不可哈希
四,特殊成員
1. 類名() 會?動執?__init__()
創建對象的時候初始化操作
2. 對象() 會?動執?__call__()
3. 對象[key] 會?動執?__getitem__()
4. 對象[key] = value 會?動執?__setitem__()
5. del 對象[key] 會?動執? __delitem__()
6. 對象+對象 會?動執? __add__()
7. with 對象 as 變量 會?動執?__enter__ 和__exit__
8. 打印對象的時候 會?動執? __str__
9. ?掉可哈希 __hash__ == None 對象就不可哈希了.
10.__new__() # 創建對象的時候.開辟內存
五.面向對象編程的執行流程
1. 加載類 -> 給類創建一個名稱空間 -> 主要存放類變量.
2.創建對象 -> 先找類. -> 根據類來開辟內存 -> 執行類中的__new__()
-> 執行__init__() -> 返回對象
python之路---18 類與類之間的關系