lambda 用来创建新的函数对象,并且在运行时返回它们
我最初写 appuifw.app.menu 的时候,调用一个带参数的函数,类似下面这样:
lambda 用来创建新的函数对象,并且在运行时返回它们
我最初写 appuifw.app.menu 的时候,调用一个带参数的函数,类似下面这样:
# 代码 1 开始
def M(str):
pass
# ## 添加代码
appuifw.app.menu = [(u"go",M(u"start"))]
# 代码 1 结束
结果是一进入程序就执行 M() 函数,相当纳闷。
解决办法是将最后一行改为 appuifw.app.menu = [(u"go",lambda:M(u"start"))]
至于原理现在还没搞清楚...