Python 如何定义类对象的新属性
假设我想创建一个类,应用一个方法,并为结果对象设置一个属性Python 如何定义类对象的新属性,python,oop,Python,Oop,假设我想创建一个类,应用一个方法,并为结果对象设置一个属性 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
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'对象没有属性'meta'
预期结果:
>>> 83
当运行代码时,我得到了错误信息,它将出现问题的行显示为
setattr(op,'meta',meta)
:
回溯(最近一次呼叫最后一次):
文件“/home/ralf/PycharmProjects/scratch_pad/run.py”,第44行,in
t1=t.to_运算符()
文件“/home/ralf/PycharmProjects/scratch\u pad/run.py”,第29行,收件人
setattr(操作“元”,元)
AttributeError:'numpy.ndarray'对象没有属性'meta'
阅读这些相关问题中的原因:
setattr(op,'meta',meta)
:
回溯(最近一次呼叫最后一次):
文件“/home/ralf/PycharmProjects/scratch_pad/run.py”,第44行,in
t1=t.to_运算符()
文件“/home/ralf/PycharmProjects/scratch\u pad/run.py”,第29行,收件人
setattr(操作“元”,元)
AttributeError:'numpy.ndarray'对象没有属性'meta'
阅读这些相关问题中的原因: