全局变量、局部变量、global关键字、nonlocal关键字

全局变量定义与特征
全局变量一旦设置在整个.py文件内都可以调用,顶头写,规范为变量名全部大写。

NAME = "Alex"
def test():
	print(NAME)


test()

局部变量定义与特征
局部变量只在某个子程序(函数)内可以被调用,函数结束后局部变量内存被释放,规范为小写。

NAME = "Alex"
def test():
	NAME = "YY"
	print(NAME)


test()
print(NAME)

global语句
在某个函数的内部代码块写入 global变量名 的语句,表示此处引用全局变量中的该变量,此时在该函数内对该变量进行修改将会将该修改作用到全局的该变量。如果不用global结构则只可以对全局变量进行修改(如果该全局变量是可修改类型)。

NAME = "Alex"
def test():
	global NAME
	NAME = "YY"
	print(NAME)


test()
print(NAME)
NAME = ["MB", "YY", "Alex"]
def test():
	NAME.append("Lucky")
	print(NAME)


test()
print(NAME)

nonlocal语句
在某个子程序内使用 nonlocal变量名 的语句,表示此处表示此处引用上一级程序中的该变量,此时在该函数内对该变量进行修改将会将该修改作用到整个上一级的该变量。如果不用nonlocal结构则只可以对上一级变量进行修改(如果该上级变量是可修改类型)。

def test1():
    name = "YY"
    print(name)

    def test2():
        nonlocal name
        name = "Lucky"
        print(name)

    test2()
    print(name)


test1()
	
def test1():
    name = ["YY", "MB"]
    print(name)

    def test2():
        name.append("Lucky")
        print(name)

    test2()
    print(name)


test1()

猜你喜欢

转载自blog.csdn.net/weixin_43690603/article/details/84262275
今日推荐