如果您使用的是Python 3,则可以使用以下
nonlocal语句启用非本地名称的重新绑定:
def outer(): ctr = 0 def inner(): nonlocal ctr ctr += 1 inner()
如果您使用的Python 2没有
nonlocal,则需要执行增量操作而无需重新绑定裸名(通过将计数器保留为某些裸名的项目或属性, 而不是
裸名本身)。例如:
...ctr = [0]def inner(): ctr[0] += 1...
当然,
ctr[0]无论您
ctr现在在其他任何地方使用裸机,都可以使用它。



