[英]Python Class - why do I have to set my class variable equal to itself when setting instance variable
[英]Class variable that is an instance of itself
這樣的事情可能嗎?
class Foo:
BAR = Foo("bar")
def __init__(self, name):
self.name = name
目前這會產生NameError: name 'Foo' is not defined
。
不, annotations
只適用於變量和函數注解。 在class
語句完全執行之前,沒有類Foo
要實例化。 您必須等到定義Foo
之后才能創建它的實例。
class Foo:
def __init__(self, name):
self.name = name
Foo.BAR = Foo("bar")
您始終可以初始化BAR = None
,然后在定義類后更改屬性的值。
class Foo:
BAR = None # To be a Foo instance once Foo is defined
...
Foo.BAR = Foo("bar") # Fulfilling our earlier promise
出於文檔目的,這可能是可取的,以便在定義中更清楚地說明Foo.BAR
將存在,盡管具有不同的值。 不過,我想不出有必要這樣做的情況。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.