当我定义一个已经赋值变量的类时,实例化它并使用__dict__
将变量作为字典获取,我得到一个空列表。
In [5]:
class A(object):
a = 1
b = 2
text = "hello world"
def __init__(self):
pass
def test(self):
pass
x = A()
x.__dict__
Out[5]:
{}
但是当我在__init__
中声明变量并使用__dict__
时,它会返回在实例化类之后分配的变量。
In [9]:
class A(object):
a = 1
def __init__(self):
pass
def test(self):
self.b = 2
self.text = "hello world"
x = A()
x.test()
x.__dict__
Out[9]:
{'b': 2, 'text': 'hello world'}
为什么__dict__
只返回在实例化类
修改答案:
创建实例时,如x = A()
x.__dict__
存储所有实例属性。
A.__dict__
存储类属性
答案 0 :(得分:1)
请尝试A.__dict__
获取所有类属性,
x = A()
x.__dict__
这里你在A&#39实例上调用__dict__
方法。因此,应显示与该实例关联的变量......
self.b
,self.text
是特定于特定实例的实例变量。