关键词 global 和 nonlocal

NAME = '海风'
def huangwei():
name = '黄伟'
print(name)
def liuyang():
name = '刘洋'
print(name)

def yangjing():
name = '沪指花'
print(name)
print(name)
yangjing()
liuyang()
print(name)
huangwei()
###运行顺序如图

#结果如下:

黄伟
刘洋
刘洋
沪指花
黄伟

----------------------------------------------global

name = '豆豆'
def weihou():
name = '陈卓'
def weiweihou():
global name#此时的name是最外层的‘豆豆’
name = '冷静'
weiweihou()
print(name)
print(name)
weihou()
print(name)
#输出结果如下;
# 豆豆 陈卓 冷静
---------------nolocal指的是获取上一级的变量
name = '豆豆'
def weihou():
name = '陈卓'
def weiweihou():
nonlocal name#指的是上一级变量‘陈卓’
name = '冷静'
weiweihou()
print(name)
print(name)
weihou()
print(name)
#输出结果如下;
# 豆豆 冷静 豆豆
原文地址:https://www.cnblogs.com/lhqlhq/p/8665096.html