我是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
Run Code Online (Sandbox Code Playgroud)
但当我打电话给replaceByTwo时,我会收到:
AttributeError: 'trash' object has no attribute 'eval'
Run Code Online (Sandbox Code Playgroud)
有谁知道如何解决这个问题?谢谢!
eval是内置的而不是Python类的默认方法.但你所寻求的是setattr:
def replaceByTwo(self, var_name):
setattr(self, var_name, 2)
Run Code Online (Sandbox Code Playgroud)
试用:
>>> t = trash()
>>> print(t.var2)
1
>>> t.replaceByTwo('var2')
>>> print(t.var2)
2
Run Code Online (Sandbox Code Playgroud)