1. 程式人生 > >python之路---18 類與類之間的關系

python之路---18 類與類之間的關系

派生類 set 根據 面向對象編程 __init__ 名稱 分享 特殊 getitem

三十七.類與類之間的關系

  一.依賴關系

   執行某個動作的時候. 需要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 類與類之間的關系