gpt4 book ai didi

python - __init__ 的可变范围

转载 作者:行者123 更新时间:2023-11-28 19:40:27 24 4
gpt4 key购买 nike

我只是想知道,为什么不能从类访问 __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'

最佳答案

__init__ 中定义的变量是实例 变量,根据定义它们不能从类范围访问。这就是它起作用的原因:

a().data # data is a member of an instance of class `a`

... 而这行不通:

a.data   # data is not a member of the `a` class

请注意,当您通过调用 a()< 创建 a 的新实例时,__init__(初始化程序)会运行,从那时起,__init__ 中定义的所有变量都绑定(bind)到 a 的特定实例。

关于python - __init__ 的可变范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10809197/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com