首頁>技術>

以下內容很多培訓一般都不會涉及,因為面向物件物件程式設計的思想是:你只需要使用工具即可,不需要了解這些工具怎麼來的,它的原理又是什麼;

所以,以下內容僅作為了解性知識點。

為什麼我們使用class關鍵字定義類的時候,只需要類名+括號()就可以呼叫類產生物件?

主要是因為type中定義了相應的方法,我們定義一個類的時候,執行的的步驟如下:

1、先創造一個空物件,比如物件名是ppp;

2、呼叫元類內部的__init__方法,完成物件的初始化操作;

3、返回初始化好的物件;

但是要完成以上3步的操作,需要呼叫元類中的__call__方法和__new__方法。

在__init__初始化之前,會先使用__new__方法先創造一個空物件;然後才是呼叫類的__init__方法進行物件的初始化操作;

如果想讓一個物件可以加括號()呼叫,需要在該物件的類中新增一個___call__方法;

1、元類的.__call__函式會先呼叫type內的__new__方法創造一個空物件;

2、元類的__call__函式會先呼叫type內的__init__方法初始化;

3、元類的__call__函式會返回一個初始化好的物件。

5
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Go實戰——golang實現生成縮圖伺服器