【发布时间】:2011-09-27 19:36:06
【问题描述】:
我想知道 Python 中的闭包是否可以操作其命名空间中的变量。您可能会称其为副作用,因为状态正在闭包本身之外进行更改。我想做这样的事情
def closureMaker():
x = 0
def closure():
x+=1
print x
return closure
a = closureMaker()
a()
1
a()
2
显然我希望做的事情更复杂,但这个例子说明了我在说什么。
【问题讨论】:
-
我会将此标记为其他问题的重复,但其他问题确实应该标记为与此问题的重复;这个问题很简单,切中要害,写得很好。但也见stackoverflow.com/questions/141642/…
-
那么有没有办法合并两个或多个问题? ;p
标签: python closures side-effects