2017-09-14 118 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的部分内容)。 –