我有这个(示例)代码:
init()
class A:
foo = bar()
def __init__(self):
print(A.foo)
问题是,除非先调用bar()
,否则函数init()
拒绝工作。对于这个问题,什么是好的Pythonesque解决方案?
在我的特定情况下,init()
是第三方,无法进行调整,并且在与A
定义的文件不同的文件中调用。
答案 0 :(得分:0)
喜欢这个吗?
class A:
foo = None
def __init__(self):
if A.foo is None:
A.foo = bar()
print(A.foo)
如果您不确定将调用if
,还可以将A.__new__()
语句移动到A.__init__()
(例如,在显式调用其构造函数之前取消对A
对象的修改)
答案 1 :(得分:0)
您可以在另一个函数中将调用包装到bar()
,以确保已调用init()
。