关键词 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)
#输出结果如下;
# 豆豆 冷静 豆豆
posted @ 2018-03-28 17:24  阜阳小全  阅读(160)  评论(0编辑  收藏  举报