在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在包含函数的作用域中寻找变量,等等,等等)。