假设我想创建一个类,应用一个方法并为结果对象设置一个属性。
arr = np.array([1,2,3])
class Transformer:
def __init__(self, array):
self.array = array
def operator(self):
operator = (self.array * 2) + 60
return operator
@staticmethod
def meta(array):
meta = (max(array) + 17)
return meta
def to_operator(self):
op = self.operator()
meta = self.meta(op)
setattr(op, 'meta', meta)# or op.meta = meta
return op
t = Transformer(np.array([1, 2, 3]))
t1 = t.to_operator()
print(t1.meta())
这里我收到以下错误:
AttributeError: 'numpy.ndarray' object has no attribute 'meta'
预期结果:
>>> 83
最佳答案
运行代码时,我收到错误,并将有问题的行显示为 setattr(op, 'meta', meta)
:
Traceback (most recent call last):
File "/home/ralf/PycharmProjects/scratch_pad/run.py", line 44, in <module>
t1 = t.to_operator()
File "/home/ralf/PycharmProjects/scratch_pad/run.py", line 29, in to_operator
setattr(op, 'meta', meta)
AttributeError: 'numpy.ndarray' object has no attribute 'meta'
阅读这些相关问题的原因:
关于python - 如何定义类对象的新属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57076340/