我们有一个具有一个class数据属性的简单类:
class Foo:
bar = 1
您现在可以通过以下两种方式在类外部访问bar
属性:
Foo.bar
Foo().bar
第一种方法只是在类bar
中寻找Foo
类属性。第二种方法as I understood首先在实例bar
中查找Foo()
实例属性,但找不到任何内容(因为Foo()
实例中没有实例属性)因此它开始在类bar
的命名空间中寻找Foo
类属性。
从我的角度来看,有两种几乎相同的方式访问class属性,因此我总是很难选择其中一种。为什么有两种方法呢?您能否显示一个示例代码来证明第二种方法的重要性?如果不允许从实例访问类属性,则代码将更加复杂/不清楚。