Python新手:使用eval()为self.variable赋值

雅拉015

我是Python的新手,我有一个包含很多变量的类,如下所示:

class trash:

    def __init__(self):
        self.var1=1
        self.var2=1
        self.var3=1
        ...

    def replaceByTwo(self, var_name)
        self.eval(var_name) = 2

但是当我致电replaceByTwo时,我收到了以下消息:

AttributeError: 'trash' object has no attribute 'eval' 

有谁知道如何解决这个问题?谢谢!

摩西·科莱多耶(Moses Koledoye)

eval是内置的,不是Python类的默认方法。但是,您要寻找的是setattr

def replaceByTwo(self, var_name):
     setattr(self, var_name, 2)

审判:

>>> t = trash()
>>> print(t.var2)
1
>>> t.replaceByTwo('var2')
>>> print(t.var2)
2

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章