簡體   English   中英

作為自身實例的類變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM