python项目_全局变量和函数嵌套

1.全局变量和局部变量

# 1.定义全局变量
c1 = 91    #顶格写的就是全局变量

# (1) 局部变量
def func():
    # 定义局部变量
    a = 5   ##有缩进的就是局部变量

局部变量和全局变量因为所在空间不一样,所以不会有影响

范例:
 
c = 6

def func():
    c = 7
func()

2.函数内修改全局变量,函数外修改修改局部变量

# 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 只能修饰局部变量,当所有层级找不到的时,直接报错;

3.LEGB原则(即就近原则找变量)

    #找寻变量的调用顺序采用LEGB原则(即就近原则)
    B —— Builtin(Python);Python内置模块的命名空间      (内建作用域)
    G —— Global(module); 函数外部所在的命名空间        (全局作用域)
    E —— Enclosing function locals;外部嵌套函数的作用域(嵌套作用域)
    L —— Local(function);当前函数内的作用域            (局部作用域)
    依据就近原则,从下往上 从里向外 依次寻找

猜你喜欢

转载自www.cnblogs.com/jalen-123/p/13173698.html