我只是想知道为什么定义的变量__init__不能从类中访问?它应该在实例化期间执行,以便从外部访问吗?
>>> class a:
... data = {}
...
>>> a.data
{}
>>> class a:
... def __init__(self):
... self.data = {}
...
>>> a.data
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: class a has no attribute 'data'
Run Code Online (Sandbox Code Playgroud)
Ósc*_*pez 12
定义的变量__init__是实例变量,根据定义,它们不能从类范围访问.这就是为什么这样做的原因:
a().data # data is a member of an instance of class `a`
Run Code Online (Sandbox Code Playgroud)
......虽然这不起作用:
a.data # data is not a member of the `a` class
Run Code Online (Sandbox Code Playgroud)
请注意,__init__(初始化程序)是在您a通过调用创建新实例时运行的a(),从该点开始,所有定义的变量__init__都绑定到该特定实例a.