我无法理解为什么 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
提交
取消