【发布时间】:2018-02-05 01:17:54
【问题描述】:
我正在尝试在以下代码中在 python 中使用nonlocal 关键字。 inner() 包含在 outer() 中,我想创建一个计数器变量,它会记住从 outer() 调用 inner() 的次数。 ctr 在outer() 中定义,在inner() 中定义为nonlocal。
但我收到no binding for nonlocal 'ctr' found 的错误。
def inner1():
nonlocal ctr
ctr=ctr+1
print(' ctr= {0}'.format(ctr))
def outer1():
ctr=0
for i in range(5):
inner1()
outer1()
【问题讨论】:
-
inner()在outer中被调用不等同于在outer中定义的inner。 nonlocal 与后者一起使用。 -
非本地语句中列出的名称,与全局语句中列出的名称不同,必须引用封闭范围内预先存在的绑定...该变量在哪里定义封闭范围??
标签: python