我想在类中计算一个值,该值对于该类的所有实例都保持不变,并且只计算一次
class A:
a = calculate_a()
def calculate_a():
return 5
首先,我应该为a = calculate_a()
中的calculate_a()
设置什么作为引用?
self.calculate_a()
和A.calculate_a()
都不正确(未解析引用)
我需要的是,当创建第二个实例时,不再调用calculate_a()
instance1 = A() -> calls calculate_a() to set value for a;
instance2 = A() -> uses the value of a calculated above without calling calculate_a
类成员只初始化一次-它们在创建实例之前被初始化
您可以自己进行测试:
执行此命令会打印
'Calculated'
一次,即使不创建任何实例仅执行此打印的
'Calculated'
一次,并且在请求'Order?'
之前执行一次,在输入程序后结束,不再输出更多资讯:
您可以将“init”-方法放入holder类中,以避免污染global():
相关问题 更多 >
编程相关推荐