2024-03-28 23:38:17 发布
网友
我是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时,我收到的信息是:
有人知道怎么解决这个问题吗? 谢谢!在
eval是一个内置方法,而不是Python类的默认方法。但你想要的是setattr:
eval
setattr
def replaceByTwo(self, var_name): setattr(self, var_name, 2)
审判:
您得到的错误是因为您试图调用self.eval(),但eval是一个全局函数,而不是实例的成员。在
self.eval()
不管怎样,对于您想要做的事情,例如按名称设置成员/属性,您应该使用setattr()。在
setattr()
eval
是一个内置方法,而不是Python类的默认方法。但你想要的是setattr
:审判:
^{pr2}$您得到的错误是因为您试图调用
self.eval()
,但eval是一个全局函数,而不是实例的成员。在不管怎样,对于您想要做的事情,例如按名称设置成员/属性,您应该使用
setattr()
。在相关问题 更多 >
编程相关推荐