据我了解,类属性在某种意义上可以用作 Python 的静态变量。我有一个类,我想在第一次运行期间设置这个静态变量__init__(),即在创建第一个对象时并保持这样。不是每次都更新。我应该怎么做?即使设置标志也无济于事。
class A():
foo=None
foo_set_flag=False
def __init__(self,arg_foo):
if not self.foo_set_flag:
self.foo=arg_foo
foo_set_flag=True
a=A(12)
b=A(13)
print a.foo
print b.foo
Run Code Online (Sandbox Code Playgroud)
这使:
12
13
Run Code Online (Sandbox Code Playgroud)
当然我期待
12
12
Run Code Online (Sandbox Code Playgroud)
使用ClassName.attribute_name访问类属性:
class A:
foo = None
foo_set_flag = False
def __init__(self, arg_foo):
if not A.foo_set_flag:
A.foo = arg_foo
A.foo_set_flag = True
a=A(12)
b=A(13)
print a.foo # -> 12
print b.foo # -> 12
Run Code Online (Sandbox Code Playgroud)
self.foo = ...创建一个新的实例属性。self.foo只有当没有实例属性时foo,读才会访问类属性,否则访问实例变量foo。