Python では、そのクラス インスタンスを介してクラス変数にアクセスできます。
>>> class A(object):
... x = 4
...
>>> a = A()
>>> a.x
4
a.x
が実際に に解決されA.x
、構築中にインスタンスにコピーされないことを示すのは簡単です。
>>> A.x = 5
>>> a.x
5
この動作はよく知られており、広く使用されているという事実にもかかわらず、これをカバーする決定的なドキュメントは見つかりませんでした。Python ドキュメントで見つけた最も近いものは、クラスのセクションでした:
class MyClass: """A simple example class""" i = 12345 def f(self): return 'hello world'
[をちょきちょきと切る]
... 定義により、関数オブジェクトであるクラスのすべての属性は、そのインスタンスの対応するメソッドを定義します。したがって、この例では、は関数である
x.f
ため、有効なメソッド参照ですが、そうではないため、そうではありません。...MyClass.f
x.i
MyClass.i
ただし、この部分ではメソッドについて具体的に説明しているため、一般的なケースにはおそらく関係ありません。
私の質問は、これは文書化されていますか? この動作に頼ることができますか?