1. ホーム
  2. パイソン

[解決済み】Pythonのメソッド内で「静的」クラス変数にアクセスするにはどうすればいいですか?

2022-04-12 17:33:13

質問

以下のようなコードがあった場合。

class Foo(object):
    bar = 1

    def bah(self):
        print(bar)
        
f = Foo()
f.bah()

それは文句を言う

<ブロッククオート

NameError: グローバル名 'bar' が定義されていません。

クラス/静的変数にアクセスするには bar メソッド内で bah ?

解決方法は?

の代わりに bar 使用 self.bar または Foo.bar . に代入する。 Foo.bar に代入するとスタティック変数が作成されます。 self.bar はインスタンス変数を作成します。