我需要有静态或外部列表,A
类的每个对象都将使用它。列表的值只需要初始化一次并且应该从构造函数参数中获取,例如:
def initialize(x, y):
for i in range(0, x):
static_to_return.append([])
for j in range(0, y):
static_to_return[i].append((i * x) + 1 + y)
return static_to_return
class A:
static_member = initialize(x, y)
def __init__(self, x, y):
self.x = x
self.y = y
如何使这项工作?也许将 static_member
移动到另一个模块会更好?或者是否可以在 __init__
函数中写入 static_member
?
最佳答案
如果你想从类的first对象初始化静态成员,你可以在类定义中将它初始化为None
,并在实例中测试它的值构造函数:
class A:
static_member = None
def __init__(self, x, y):
self.x = x
self.y = y
if A.static_member is None: # still not initialized?
A.static_member = initialize(x, y) # ok, here it is
关于python - 如何根据构造函数参数初始化静态成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37822573/