在Python中修改闭包的绑定变量。

20 浏览
0 Comments

在Python中修改闭包的绑定变量。

有没有办法修改闭包内的某个变量的绑定值?看看下面的示例更好地理解它。

def foo():
    var_a = 2
    var_b = 3
    def _closure(x):
        return var_a + var_b + x
    return _closure
localClosure = foo()
# Local closure 现在是 "return 2 + 3 + x"
a = localClosure(1) # 2 + 3 + 1 == 6
# 在这里做些魔法,将闭包中的 "var_a" 变成 0
# ...但是什么魔法?这可能吗?
# Local closure 现在是 "return 0 + 3 + x"
b = localClosure(1) # 0 + 3 +1 == 4

0