2017-09-14 71 views

回答

2

你需要使用一個lambda功能,以防止從info()被自動執行:

helpmenu.add_command(label="Version", command=lambda: info("Not yet realesed")) 
+1

我將補充回答:假設'add_command'方法的指令的說法是,這將是一個功能要求採取特定行動。當你寫'command = info(「Not yet realesed」)時,你不會傳遞函數,而是調用函數作爲參數的結果。這是問題的實質。解決的方法是用lambda函數(如由@Khristos完成)封裝「info(」Not yet realesed「)」的調用,或者使用'functools'中的'partial'來創建帶有'bound'參數的函數。 – Grigoriy

+0

他應該不需要使用lambda表達式,他應該能夠將函數直接傳遞給參數,如grigoriy所述(使用functools的部分內容)。 –