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
? 感謝您的解釋。
丹尼斯