假设我有一个包含很多字段的类,并且我想使初始化程序适用于所有字段,这样我就不需要为每个字段编写初始化程序。
class Foo():
def __init__(n):
self.n = n
self.x = None
self.m = None
self.v = None
但方法
def init_x(self, x):
# initialize or erase x to zeros
x = np.zeros(self.n)
不起作用,因为x=
失去参考x
. But
@staticmethod
def get_x(x, i):
return x[i]
@staticmethod
def set_x(x, i):
x[i] = val
作品。什么可能使我的init_x
上班?我想最初将字段设置为“无”,因为还有其他一些因素取决于这些字段是否为“无”。
回复其中一条评论,下面不起作用
from numpy import zeros
class Foo:
def __init__(self):
self.x = None
@staticmethod
def foo(x):
x[:] = zeros((10,4))
def make(self):
self.foo(self.x)
f = Foo()
f.make()
print(f.x)
since
Traceback (most recent call last):
File "python", line 16, in <module>
File "python", line 12, in make
File "python", line 9, in foo
TypeError: 'NoneType' object does not support item assignment