参数在Python中用作函数内部变量名的一部分



我有以下功能:

def button_enter(self, event, type):
if self.green_button_anim_on:
return
self.canvas.itemconfigure(self.green_button, image=self.green_button_image_hover)

该功能用于将绿色按钮的图像改变为"绿色"按钮;悬停状态";用户将鼠标悬停在图像上时的图像。我想做的是-我想通用这个函数,不仅用于绿色按钮,还用于红色退出等按钮。因此,我决定将参数type传递给具有redgreenquit等值的函数。

现在,我需要根据参数type的值,将函数中的单词改为绿色。请问最简单的方法是什么?非常感谢。

您可以将按钮和图像保存在dict:中

self.buttons = { "green": self.green_button, ... }
self.images = {...}
...

然后,检索正确的对象:

self.canvas.itemconfigure(self.buttons[type], image=self.images[type])

您可以在python中使用enum,这样您就可以使用有意义的名称并将其映射到常数值。

最新更新