函数与变量作用域
Posted guoyujiang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数与变量作用域相关的知识,希望对你有一定的参考价值。
全局变量 与 局部变量 与 闭包变量(介于两者之间的变量)
global关键字:局部范围内更改全局变量(函数默认只能读取全局变量,不能修改)
nonlocal关键字:嵌套函数中修改闭包变量(外层函数定义的变量相当于其语句块内的全局变量)
1 i=1 2 j=2 3 print(‘全局变量:i=‘,i,‘j=‘,j) 4 5 def fun(): 6 global i,j #要想修改全局变量,需要先使用global关键字对其进行事先声明 7 i=2 8 j=3 9 10 fun() 11 print(‘调用fun,修改后的全局变量:i=‘,i,‘,j=‘,j) 12 13 14 def fun1(): 15 i=0 16 print(‘i=‘+str(i)+‘,在fun1中,是局部变量‘) 17 18 fun1() 19 print(‘i=‘+str(i)+‘,在函数外部,是全局变量‘) 20 21 22 def fun2(): 23 k=2 #k为闭包变量(Closue),范围介于全局变量和局部变量之间,需要修改时使用nonlocal关键字先声明后修改 24 def fun3(): 25 nonlocal k 26 k = 3 27 a=k+i 28 return a 29 print(‘fun2中,闭包变量k=‘+str(k)) 30 return fun3() 31 32 print(fun2())
以上是关于函数与变量作用域的主要内容,如果未能解决你的问题,请参考以下文章