Python新手:使用eval()为自变量

2024-03-28 23:38:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我是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时,我收到的信息是:

^{pr2}$

有人知道怎么解决这个问题吗? 谢谢!在


Tags: nameself信息initvardefevalclass
1条回答
网友
1楼 · 发布于 2024-03-28 23:38:17

eval是一个内置方法,而不是Python类的默认方法。但你想要的是setattr

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

审判:

^{pr2}$
网友
2楼 · 发布于 2024-03-28 23:38:17

您得到的错误是因为您试图调用self.eval(),但eval是一个全局函数,而不是实例的成员。在

不管怎样,对于您想要做的事情,例如按名称设置成员/属性,您应该使用setattr()。在

相关问题 更多 >