小编典典

在函数中绑定对象值(闭包)

python

在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中将变量的值绑定到函数?


阅读 134

收藏
2020-12-20

共1个答案

小编典典

您可以使用关键字参数:

x = 3
def f( x=x ): 
    return x

x = 7
f()  # 3

创建函数时将 分配关键字参数。 运行该函数时,会在函数
范围内查找其他变量。(如果在函数的作用域中找不到它们,则python在包含函数的作用域中寻找变量,等等,等等)。

2020-12-20