我无法理解为什么 dir(Foo) 不显示在init 方法中定义的属性。我搜索并找到了 Kindall 答案。但仍然无法完全理解。class Foo(object): kind = 'car' def __init__(self, a): self.a = a def bar(self, b): return self.a + bf = Foo(1)print(dir(Foo)) #['bar','kind']print(dir(f)) #['a','bar','kind']
2 回答
慕的地10843
TA贡献1785条经验 获得超8个赞
那是因为a只有在 __init__调用之后才定义。这是一个对象变量,特定于每个Foo 对象。kind另一方面,定义在类命名空间中,它是一个类字段。这就是为什么当您dir(Foo)看不到时a- 它只列出属于该类的内容。f另一方面, 是一个已经调用的对象,__init__因此a定义了它。
添加回答
举报
0/150
提交
取消
