Python中带有示例的非本地关键字
Python非本地关键字
nonlocal是python中的一个关键字(区分大小写),当我们使用嵌套函数时需要使用它,并且我们需要使用在外部函数中声明的函数,如果执行相同的操作,则会将变量创建为local和这样我们将无法使用在外部函数中声明的内部函数中的变量。
在这种情况下,我们可以使用nonlocal关键字将变量(在外部函数中声明)定义为内部函数中的非局部变量。
非本地关键字的语法
nonlocal variable_name
示例
def outerfunc():
    a = 10    
    def innerfunc():
        #非本地绑定
        nonlocal a
        a = 100
            
    #调用内部函数    innerfunc()
    #打印一个的值
    print("a : ", a)
    Output:
    a : 100非本地关键字的Python示例
示例1:在外部函数中定义两个变量,并在内部函数中将一个变量设为非局部变量。
#python代码演示一个例子 
#非本地关键字的 
#嵌套函数
def outerfunc():
    a = 10
    b = 20
    
    def innerfunc():
        #非本地绑定
        nonlocal a
        a = 100 #将更新
        b = 200 #不会更新, 
                #它将被视为局部变量
    
    #调用内部函数    innerfunc()
    #打印一个的值 and b
    print("a : ", a)
    print("b : ", b)
    
#主要代码
# calling the function i.e. outerfunc()outerfunc()输出结果
a : 100 b : 20
如您在输出中看到的,a和b是以下变量outerfunc()并在innerfunc()我们将变量a绑定为局部变量,因此a在此处将不是局部变量,但是b将被视为以下变量的局部变量innerfunc()如果我们更改b的值,该值将被视为新分配给局部变量(对于innerfunc())b。
