我想制作一个按钮,以紧凑的形式为新变量赋值
我试过这个:
def whichButton(self, _var, _pressedButton):
self._var = _pressedButton
def checkScooter(self):
self.checkScooter = Button(window, text="Standard", command=lambda: self.whichButton(edition, 1))
self.checkScooter(row=1, column=0)
def checkAbonnement(self):
self.checkAbonnement = Button(window, text="Gold", command=lambda: self.whichButton(abonnement, 3))
self.checkAbonnement(row=1, column=0)
它只是给了我一个错误,“版本”没有定义,但我想用按钮来定义它
有什么建议吗
您要求设置一个新变量的请求很奇怪,对于您试图解决的任何问题,可能都不是正确的解决方案
也就是说,可以使用setattr根据变量的名称设置值。这个变量不一定存在。例如,要将变量
self.edition
设置为1
,可以执行setattr(self, "edition", 1)
因此,您可以将变量的字符串名称传递给
whichButton
函数,并使用setattr
设置具有该名称的变量它看起来像这样:
在上面的代码中,单击任一按钮将设置
self.edition
或self.abonnement
对于你的问题,几乎可以肯定有更好的解决方案,但你的问题并没有提供任何关于你真正想要解决的问题的细节。对此的一个简单改进是使用字典保存“新”变量,而不是创建字面上的新变量
您可以通过在
__init__
中定义一个字典,然后在whichButton
函数中设置它来实现它看起来像这样:
这样做的好处是,所有这些特殊变量都存在于一个单独的数据结构中,与对象分离。这意味着不可能意外地覆盖实例变量
相关问题 更多 >
编程相关推荐