0
我是新来的Python和遇到一个问题,旨在实现使用Qt的菜单一小块代码的定义:预评估lambda函数
def setChoice(self,choice=None):
do something here...
listOfChoices=[choice1,choice2,choice3]
menu=QMenu(self)
for choice in listOfChoices:
action=menu.addAction(choice)
action.triggered.connect(lambda : self.setChoice(choice=choice))
的问题是,setChoice()
功能总是调用choice=choice3
,这是for循环的最后一个选择。如何正确解决这个问题?
还有一个关于即时部分评估的可能相关问题: 如何从a=1; f=lambda x: x+a
这样的代码段保存在内存中f= lambda x : x+1
? 感谢您的解释。
丹尼斯