# 1.定义全局变量 c1 = 91 #顶格写的就是全局变量 # (1) 局部变量 def func(): # 定义局部变量 a = 5 ##有缩进的就是局部变量 局部变量和全局变量因为所在空间不一样,所以不会有影响 范例: c = 6 def func(): c = 7 func()
# 2.在函数内部可以修改全局变量 使用global 关键字 ‘‘‘先用global 把这个变量声明一下,在进行修改,一般放在函数的开头位置‘‘‘ def func(): global c1 print(c1) c1 = 93 func() """ # global 总结: 如果函数外部有这个全局变量,在函数内部使用global关键字,可以修改全局变量 如果函数外部没有这个全局变量,在函数内部使用global关键字,可以定义一个全局变量; """ def outer(): a = 10 def inner(): nonlocal a a = 11 print(a,1) inner() print(a,2) outer() #(3) nonlocal 只能修饰局部变量,当所有层级找不到的时,直接报错;
#找寻变量的调用顺序采用LEGB原则(即就近原则) B —— Builtin(Python);Python内置模块的命名空间 (内建作用域) G —— Global(module); 函数外部所在的命名空间 (全局作用域) E —— Enclosing function locals;外部嵌套函数的作用域(嵌套作用域) L —— Local(function);当前函数内的作用域 (局部作用域) 依据就近原则,从下往上 从里向外 依次寻找
原文:https://www.cnblogs.com/jalen-123/p/13173698.html