python中nonlocal关键字出错

时间:2017-08-27 17:41:08

标签: python

我试图在以下代码中使用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()

1 个答案:

答案 0 :(得分:2)

  

inner()包含在outer()

inner未包含在outer中(未在outer范围内定义),您只是在调用{{1}来自inner;这里没有任何关闭。