Python 全局變量與局部變量--筆記

        在python 中全局變量與局部變量的區別是作用域不同。一般局部變量聲明在方法、類中,作用範圍僅限於方法體、類中。而全局變量沒有這個限制。

1.全局變量作用於整個py文件;

2.局部變量作用域方法體、類聲明範圍內;

如下代碼:

'''
    全局變量 與本地變量的測試
'''
# 定義全局變量 num
def add():
    num2=12
    print("局部變量 num2:",num2)
    #global num #聲明這裏使用的是全局變量,有指定引用的意思
    num=2
    
num=1
print("全局變量,原始num:",num)
add();
print("運算後num:",num)

A.方法中使用全局變量,與順序無關;

B.方法中改變全局變量的值,對於傳值參數可使用關鍵字“global”;

C.方法體外使用局部變量,會產生異常;

關於變量作用於的關鍵字nonlocal

從字面意思是指【非局部變量】,【python 3.x】使用方法如下代碼:

def fn():
    num = 1;
    def fn1():
        nonlocal num
        num+=1
        return num
    return fn1();

print("nonlocal 使用測試:",fn())

結果:

上面代碼中 num不是全局變量,在不使用nonlocal聲明的前提下,運行時產生異常。使用nonlocal聲明的意義在於,指定num非方法fn1中聲明的。編譯器查找的範圍擴展到fn。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章