残念ながら、Pythonでは、クラス属性はクラス名を参照できません。以下はnameerror提起:クラス属性は、(私の場合は、ライブラリーの検証スキームのその一部)そのクラス名を参照しなければならない状況ではclass属性のクラス名を参照する最良の方法は何ですか?
class Foo(object):
bar = Foo
を行うための明確な方法は何でありますそう?
class Foo(object):
bar = None
Foo.bar = Foo
これは動作しますが、でも、コメントはクラス属性が宣言時に初期化されるように、ないクラスが宣言された後に期待しているので、混乱を引き起こす可能性がある:
次は私の現在の試みです。
もっと良い回避策がありますか?
クラス名をクラス内の文字列にハードコーディングしないようにするには、プレースホルダを ''''のような定数にハードコードすることができます。 –
martineau