Lan*_*aru 3 python closures sml
在SML(我在Python之前学过的函数式编程语言)中,我可以执行以下操作:
val x = 3;
fun f() = x;
f();
>>> 3
val x = 7;
f();
>>> 3
但是,在Python中,第一个调用将给出3,第二个调用将给出7.
x = 3
def f(): return x
f()
>>> 3
x = 7
f()
>>> 7
如何将变量的值绑定到Python中的函数?
您可以使用关键字参数:
x = 3
def f( x=x ): 
    return x
x = 7
f()  # 3
创建函数时会分配关键字参数.运行该函数时,在函数的作用域中查找其他变量.(如果在函数的作用域中找不到它们,python会查找包含函数等的作用域中的变量等).