# nolocal 和 global的不同,nolocal改变的是上级作用域里的变量,global改变的是全局作用域里的变量
# global
name = 'xueyou'
def outer():
name = 'dehua'
def inner():
global name # 将全局作用域里的name值更改,也即xueyou变成fucheng
name = 'fucheng'
inner()
print(name) # 作用域里的name值未变
outer() # dehua
print(name) # fucheng
# nolocal
name = 'xueyou'
def outer():
name = 'dehua'
def inner():
nonlocal name # 将上级作用域里的name值更改,也即dehua变成fucheng
name = 'fucheng'
inner()
print(name) # fucheng
outer() # fucheng
print(name) # 全局作用域的变量未改,输出xueyou
相关文章
- 01-16python-烧瓶和gunicorn,多个模块:循环导入-并非所有路径都可访问
- 01-16python – 金字塔gunicorn和女服务员
- 01-16Python----闭包和装饰器
- 01-16python 高阶函数三 filter()和sorted()
- 01-16Python学习-第一天-函数和模块的使用
- 01-16Python中的r+和a+
- 01-16python2和python3的range(100)的区别
- 01-16python 函数动态参数,名称空间,global,nonlocal
- 01-16同时安装python2.7和python3.5
- 01-16python datetime库使用和时间加减计算