假设代码如下,我有两个关于python的问题:
这是代码行:
filemenu.add_command(label="update...", command=CreateWindow)
Run Code Online (Sandbox Code Playgroud)
执行command=CreateWindow(some_argument)将导致CreateWindow立即执行,并且它返回的任何内容都将用作参数command.Python不够聪明,不能猜测你想要CreateWindow是回调而不是它的返回值.
使用lambda表达式: filemenu.add_command(label="update...", command=lambda: CreateWindow(some_arguments, go_here))
这实际上相当于:
def f():
CreateWindow(some_arguments, go_here)
filemenu.add_command(label="update...", command=f)
Run Code Online (Sandbox Code Playgroud)
......但要短得多.
| 归档时间: |
|
| 查看次数: |
69 次 |
| 最近记录: |