-
局部变量
-
全局变量
-
nonlocal
先看一个嵌套定义函数的实例
a = 1 def outer(): a = 1 def inner(): a = 2 def inner2(): nonlocal a #声明了一个上面第一层局部变量 a += 1 #不可变数据类型的修改 inner2() print('¥¥a¥¥ : ', a) inner() print('**a** : ',a) outer() print('全局 :',a) # ¥¥a¥¥ : 3 # **a** : 1 # 全局 : 1
nonlocal 只能用于局部变量 找上层中离当前函数最近一层的局部变量
声明了nonlocal的内部函数的变量修改会影响到 离当前函数最近一层的局部变量
对全局无效
# b=2 # def funout1(): # nonlocal b # 这样是不行滴,会报错,因为上一层是全局变量 # b=b+1 # funout1() # print('b=', b)
对局部 也只是对 最近的 一层 有影响
# (inner2)c= 4 # (全局)c= 33
python变量的作用域
最新推荐文章于 2023-05-11 13:38:05 发布