【发布时间】:2012-04-25 10:06:03
【问题描述】:
在 Python 中,可以通过该类实例访问类变量:
>>> class A(object):
... x = 4
...
>>> a = A()
>>> a.x
4
很容易证明a.x确实解析为A.x,而不是在构造过程中复制到实例:
>>> A.x = 5
>>> a.x
5
尽管这种行为是well known 并被广泛使用,但我找不到任何涵盖它的权威文档。我在 Python 文档中能找到的最接近的是 section on classes:
class MyClass: """A simple example class""" i = 12345 def f(self): return 'hello world'[剪辑]
...根据定义,作为函数对象的类的所有属性都定义了其实例的相应方法。所以在我们的例子中,
x.f是一个有效的方法引用,因为MyClass.f是一个函数,但x.i不是,因为MyClass.i不是。 ...
但是,这部分专门讨论方法,因此可能与一般情况无关。
我的问题是,这有记录吗?我可以依赖这种行为吗?
【问题讨论】:
标签: python scope specifications