函数名称空间的作用域

作用域

名称空间能够作用的范围

内置名称空间

程序任何阶段任何位置均可使用(全局有效)

全部名称空间

程序任何阶段任何位置均可使用(全局有效)

局部名称空间

一般情况下只在各自的局部名称空间中有效

global 与 nonlocal 关键字使用

如果想在局部修改全局数据
    如果数据为不可变类型则需要关键字global声明

x = 11

def index():
    
    # 局部修改全局变量  需要使用关键字声明

    global x   # >>> 声明 x 为全局名称空间的名字

    x = 222

index()

print(x)




如果想在局部修改全局数据
    
    如果数据为可变类型则无需关键字global声明

name_list = ['jason','kevin']

def index():

    name_list.append('hello')

index()

print(name_list)




如果想要在内部的局部修改外部局部的不可变类型数据

需要关键字nonlocal声明

def index():
    
    l1 = [11,22]

    def func():

        #内部局部修改外部局部

        l1.append(333)
    
    func()

    print(l1)

index()











猜你喜欢

转载自blog.csdn.net/qq_64089078/article/details/121356182