【发布时间】:2011-05-06 10:37:00
【问题描述】:
在 JS 中,我们可以这样写闭包:
function f(){
var a=0;
function g(){
alert(a++);
}
return g;
}
g=f()
g()
但是,如果我在 python 中编写以下代码
def f():
a=0
def g():
a+=1
print a
return g
g=f()
g()
然后我得到 UnboundedLocalError。
谁能告诉我python和JS中闭包的区别?
【问题讨论】:
-
您真的相信这种差异可以解释您所看到的吗?
-
我想是的。也欢迎直接解释观察结果
标签: javascript python closures