我是python新手,遇到了一个问题,其中一小段代码的目标是用Qt实现菜单:
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循环的最后一个选择。如何妥善解决这个问题?在
还有一个可能与直接部分评估相关的问题:
如何将f= lambda x : x+1
从a=1; f=lambda x: x+a
这样的代码保存到内存中?
谢谢你的解释。在
丹尼斯
这是Python
for
循环的一个麻烦问题:循环变量是在封闭范围内创建的,并为每次迭代重新分配。在要解决此问题,您需要创建一个新的局部作用域,以便在某个位置“保存”变量:
或者,在你的第二个问题中
^{pr2}$相关问题 更多 >
编程相关推荐