メソッド内で静的クラス変数にアクセスしようとしたときに「NameError」が発生した場合は、構文を調整する必要があります。これを効果的に行う方法は次のとおりです。
指定されたコードのコンテキスト内:
1 2 3 4 5 6 7 8 |
|
「bar」が「bah」メソッド内のグローバル変数としてアクセスされるため、エラーが発生します。これを解決するには、次の 2 つのオプションを使用できます:
1.クラス属性 (静的変数) によるアクセス:
1 2 |
|
この構文は、特定のインスタンスに関連付けられることなく、クラス "Foo" の静的変数として "bar" にアクセスします。
2.インスタンス属性によるアクセス:
1 2 |
|
この構文は、メソッド内のインスタンス変数として「bar」にアクセスします。 「self.bar」に割り当てを行うと、「Foo」のインスタンスごとに「bar」のインスタンス固有のバージョンが作成されます。
補足:
または、 "self.bar" としてのクラス属性も、クラス内のすべてのインスタンスに影響します。
1 2 3 |
|
この場合、他のインスタンスに対する後続の "bah" 呼び出しでは、"2" が出力されます。これは、インスタンス固有のバージョンの「バー」はその場で作成されます。
以上が質問の形式を念頭に置き、核心的な問題に焦点を当てた、いくつかのタイトルのオプションを次に示します。 ダイレクトかつクリア: * Python のメソッド内の静的クラス変数にアクセスするにはどうすればよいですか? * なぜ私はの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。