Python是否具有類構造函數的機制,即每當首次引用類時(而不是在創建該對象的實例時)調用的函數?我知道這存在於其他一些語言中,但我還沒有在Python中遇到過。Python類構造函數(靜態)
基本上,我想初始化該函數中的一些靜態屬性。我在下面展示了我期望的一個例子。當然,該示例返回None,但我希望它返回'foo'。
class T:
arg = None
def __class_constructor__():
T.arg = 'foo'
print(T.arg) # returns None
爲了避免混淆:我深知對象構造的,但是這不是我想要的,因爲一旦被創建的第一個對象時,它纔會被調用,而不是之前:
class T:
arg = None
def __init__(self):
type(self).arg = 'foo'
print(T.arg) # returns None
obj = T()
print(T.arg) # returns 'foo'
爲什麼不'T類中聲明,當它初始化類變量:ARG =「foo'' ...? 'class'關鍵字*是「類構造函數」。 – deceze
我想分配的實際值比'foo'稍微複雜一些,所以不幸的是它不能像這樣分配 –
除非值在您定義類的時候依賴於不可用的信息,否則沒有你不能這樣做的原因。請詳述一些細節? – deceze