老師,上節(jié)中的代碼:
#1: 創(chuàng)建一個空對象
obj = cls.__new__(cls, *args, **kwargs)
和本節(jié)中的代碼:
if not cls._instance:
cls._instance=super().__new__(cls)
這兩處代碼都是調用父類object的__new__方法嗎,為什么第一個new是3個參數(shù),第二個new是1個參數(shù)呢
![]() |
superbe
展開
老師,上節(jié)中的代碼:
#1: 創(chuàng)建一個空對象
obj = cls.__new__(cls, *args, **kwargs)
和本節(jié)中的代碼:
if not cls._instance:
cls._instance=super().__new__(cls)
這兩處代碼都是調用父類object的__new__方法嗎,為什么第一個new是3個參數(shù),第二個new是1個參數(shù)呢 ![]() superbe
展開
@ T-g0vk7lcin 謝謝老師!上節(jié)代碼是不是可以這樣理解: 把cls看作對象的話,它所屬的類就是元類Mytype,所以cls.__new__就應該調用Mytype中定義的__new__,而Mytype中并沒有__new__,所以就再往上找到Mytype的父類type的__new__方法?不知道我這樣理解對不對。 |
![]() ![]() 學習達人
|
煙臺胖子
展開
|
承擔因您的行為而導致的法律責任,
本站有權保留或刪除有爭議評論。
參與本評論即表明您已經閱讀并接受
上述條款。