This question already has answers here:
Python nonlocal statement
                                
                                    (9个答案)
                                
                        
                                2年前关闭。
            
                    
我正在尝试在以下代码中的python中使用nonlocal关键字。 inner()包含在outer()中,我想创建一个计数器变量,该变量将记住从inner()调用outer()的次数。 ctrouter()中定义,在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()

最佳答案

inner()包含在external()中


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

关于python - python中的非本地关键字错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45907660/

10-12 21:24