ホームページ  >  記事  >  バックエンド開発  >  Python のメソッドからクラス変数にアクセスするにはどうすればよいですか?

Python のメソッドからクラス変数にアクセスするにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-26 17:24:02933ブラウズ

How to Access Class Variables from Methods in Python?

メソッド内のクラス変数へのアクセス

Python でクラスを操作する場合、メソッド内からクラス変数にアクセスする必要がある場合があります。ただし、メソッド内で変数を参照するだけでは、NameError が発生する可能性があります。

問題

次のコード スニペットを考えてみましょう:

<code class="python">class Foo(object):
    bar = 1

    def bah(self):
        print(bar)</code>

このコードを実行しようとすると、「NameError: グローバル名 'bar' が定義されていません」が発生します。これは、変数 bar がクラス変数であり、メソッド bah が直接アクセスできないためです。

解決策

メソッド内でクラス変数にアクセスするには、 2 つのオプションがあります:

  • self.bar: これは、クラスの各インスタンスに固有のインスタンス変数を参照します。
  • Foo .bar: これは、クラスのすべてのインスタンス間で共有されるクラス変数を参照します。

クラス変数を変更する場合は、Foo.bar を使用します。それ以外の場合は、self.bar を使用します。

正しいアプローチを使用してコード スニペットをリファクタリングします:

<code class="python">class Foo(object):
    bar = 1

    def bah(self):
        print(self.bar)  # Access the instance variable

f = Foo()
f.bah()  # Prints 1</code>

このコードは 1 を出力します。インスタンス変数にアクセスします。クラス変数にアクセスしたい場合は、print ステートメントで self.bar を Foo.bar に変更するだけです。

以上がPython のメソッドからクラス変数にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。