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。