30个python使用小技巧(新手如何使用python)
398
2022-08-23
Python----global和nolocal关键字的用法(python global nonlocal)
1、global的作用
这个问题在面试中非常常见,经常会有面试官问,如下代码打印结果是啥
var=10def func(): var=var+20 print("inner:",var)print(var)func()print(var)
var=10def func(): global var var=var+20 print("inner:",var)print(var)func()print(var)
执行结果如下:
10inner: 3030
这里需要记住的一个关键点是,全局变量在函数局部区域内,不能出现在赋值符号=的右侧,但是如果没有赋值符号,比如直接打印,这时又是可见的,如下:
var=10def func(): print("inner:",var)print(var)func()print(var)
执行结果为:
10inner: 1010
如果在函数局部区域内对和全局变量同名的变量重新赋值时,注意此时赋值的并不是全局变量,而是一个全新的局部变量,而全局变量并未发生变化,如下:
var=10def func(): var=20 print("inner:",var)print(var)func()print(var)
此时执行结果为:
10inner: 2010
2、nonlocal的作用
def outer(): var=10 def inner(): global var var=var+20 print("in inner:",var) print(var) inner() print(var)outer()
def outer(): var=10 def inner(): nonlocal var var=var+20 print("in inner:",var) print(var) inner() print(var)outer()
执行结果如下:
10in inner: 3030
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~