我试图在以下代码中使用python中的nonlocal
关键字。 inner()
中附有outer()
,我想创建一个计数器变量,该变量将记住从inner()
调用outer()
次的次数。 ctr
定义了outer()
,nonlocal
定义为inner()
。
但我收到的错误为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()
答案 0 :(得分:2)
inner()包含在outer()
中
否,inner
未包含在outer
中(未在outer
范围内定义),您只是在调用{{1}来自inner
;这里没有任何关闭。