python - Python中类的顶级属性存储在哪里

标签 python class scope

我想了解以下情况:

>>> class Test:
...     a = 1
...
>>> x = Test()
>>> x.__dict__
{}
>>> x.a
1
>>> x.__dict__
{}
>>> x.a = 1
>>> x.__dict__
{'a': 1}

开头的a属性存储在哪里?为什么它只有在赋值后才在__dict__中可见?

最佳答案

它们存储在类本身中:

>>> class Test:
...     a = 1
... 
>>> Test.__dict__
{'a': 1, '__module__': '__main__', '__doc__': None}

Python 首先查看实例属性,然后查看类。

关于python - Python中类的顶级属性存储在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23665479/

相关文章:

python - 什么时候使用 super(Baseclass, self).__init__

c - 在文件名中添加数字

.net - 在 .NET 中应用 XSLT 与 Notepad++ 的结果不同(不正确)

另一种 Python 进程技术的 Python 看门狗?

python - 如何将变量插入字符串?

python - 匹配不需要的链接

c# - .net 框架与 scrapy python

unit-testing - Moq-ing 类或接口(interface)有什么区别?

php - Laravel/Intervention 图像类 - 找不到类

JSF 属性引用范围内的对象,其生命周期比目标范围 View 短