Python的變量的作用域(全局變量和局部變量)

變量

變量起作用的範圍稱爲變量的作用域,不同的作用域內同名變量之間互不影響。變量分爲:全局變量、局部變量。

全局變量:

  1. 在函數和類定義之外聲明的變量,作用域爲定義的模塊,從定義位置開始直到模塊結束。
  2. 全局變量降低了函數的通用性和可讀性,應儘量避免全局變量的使用。
  3. 全局變量一般做常量使用。
  4. 函數內要改變全局變量的值,使用global聲明一下

局部變量:

  1. 在函數體中(包含形式參數)聲明的變量
  2. 局部變量的引用比全局變量快,優先考慮使用局部變量
  3. 如果局部變量和全局變量同名,則在函數內隱藏全局變量,只使用同名的局部變量。

全局變量的作用域測試:

a=2020      #全局變量
def one():
    global a   #如果在函數內改變全局變量的值,使用global關鍵字聲明
    print(a)   #打印全局變量a的值
    a=20200528  #修改全局變量的值

one()
print(a)

#執行返回
>>>2020
   20200528

***在調用函數時,函數底層的變化。函數內部的變量將在棧中形成棧幀(也稱爲startframe),幀只包含函數體中局部變量(不包含全局變量),在調用函數後,幀消失,再次調用函數時,在形成棧幀幀。

輸出局部變量和全局變量

a=100

def one(a,b,c):
    print(a,b,c)
    print(locals())     #打印輸出局部變量
    print("---->"*20)
    print(globals())    #打印輸出全局變量

one(11,22,33)

結果返回

有關全局和局部變量效率的測試

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