相关疑难解决方法(0)

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

有没有办法修改闭包内的其中一个变量的绑定值?看一下这个例子来更好地理解它.

def foo():
    var_a = 2
    var_b = 3

    def _closure(x):
        return var_a + var_b + x

    return _closure


localClosure = foo()

# Local closure is now "return 2 + 3 + x"
a = localClosure(1) # 2 + 3 + 1 == 6

# DO SOME MAGIC HERE TO TURN "var_a" of the closure into 0
# ...but what magic? Is this even possible?

# Local closure is now "return 0 + 3 + x"
b = localClosure(1) # …
Run Code Online (Sandbox Code Playgroud)

python closures functional-programming

35
推荐指数
5
解决办法
9673
查看次数

标签 统计

closures ×1

functional-programming ×1

python ×1