0
考慮在文件my_module.py代碼:意外的行爲,同時導入具有類定義的Python模塊
class A(object):
def __init__(self, x=er()):
self.x = x
現在,當我導入此模塊
import my_module
我得到一個錯誤,
name 'er is not defined
儘管我明白my_module沒有定義er
,但我從不創建class A
的實例。因此,當簡單地導入模塊時,python嘗試執行__init__
回調令人費解。雖然,沒有完全執行__init__
調用如下面的例子來說明:
class A(object):
def __init__(self, x=5):
self.x = x
print ('I am here')
現在,當我輸入模塊 - 沒有什麼是印刷,這是預期的行爲。
我很困惑,爲什麼功能er
在第一個例子中調用時,我不願意實例化一個對象class A
。任何指向解釋這個的文檔的指針?
無論如何,如果這就是你的意思,'x'不是在這裏作爲回調。你只需要一個參數'er',在'__init__'中你可以執行'self.x = er()' –