只是出于好奇問:
直覺上,我傾向于認為下面的代碼會失敗,因為在函式被定義在物件的主體之前,__init__函式呼叫somefunc來填充somevar,就像模塊中的函式一樣。
你能解釋一下為什么這段代碼真的有效嗎?
謝謝,
class someobj:
def __init__(self):
self.somevar = self.somefunc()
def somefunc(self):
return 'some_value'
obj = someobj()
print(obj.somevar)
uj5u.com熱心網友回復:
呼叫def將函式代碼、變數等分配給它的名稱,但不運行內部代碼。檔案。
解釋器看著這個腳本并說
- 我將定義一個類(基本上是一個命名空間)
- 在課堂上,我將定義 class.init
- 另一個定義呼叫;我將定義 class.somefumc
- 現在 init 由建構式呼叫,并且 somefunc 方法已經定義。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/476332.html
