<分区>
在 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 中将变量的值绑定(bind)到函数?
<分区>
在 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 中将变量的值绑定(bind)到函数?
最佳答案
您可以使用关键字参数:
x = 3
def f( x=x ):
return x
x = 7
f() # 3
关键字参数在创建函数时分配。 函数运行时会在函数范围内查找其他变量。 (如果在函数范围内找不到它们,python 会在包含函数的范围内查找变量,等等)。
关于python - 在函数中绑定(bind)对象值(闭包),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11953330/