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);當前函數內的作用域            (局部作用域)
    依據就近原則,從下往上 從里向外 依次尋找

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM