【发布时间】:2016-06-14 21:39:40
【问题描述】:
我需要有静态或外部列表,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?
【问题讨论】:
-
不清楚您期望发生什么。这应该是静态成员(实际上是:类属性)还是从为每个实例提供的构造函数参数初始化?当您创建
A的第二个实例时会发生什么?类工厂 (A = build_A_with(x, y)) 会是更好的方法吗?x和y来自哪里(以及何时)? -
会有很多
A类对象,每个对象都有相同的x和y值。我需要的是根据构造函数参数使用A类的第一个实例化来初始化这个属性。 -
如果他们都有相同的
x和y,为什么他们是__init__参数?这些用于为每个实例设置不同的东西。价值观究竟从何而来?您能否提供更多上下文,这似乎是XY (hah!) problem。