Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何定义类对象的新属性_Python_Oop - Fatal编程技术网

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'
阅读这些相关问题中的原因:


用classmethod替换staticmethod如何?下次将完整的错误回溯添加到问题中,因为在那里您可以找到错误的原因。我添加了一个包含更多信息的答案。用classmethod替换staticmethod如何?下次将完整的错误回溯添加到您的问题中,因为在那里您可以找到错误的原因。我添加了一个包含更多信息的答案。