真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

淺談Python變量作用域-創(chuàng)新互聯(lián)

小編這次要給大家分享的是淺談Python變量作用域,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

懷來網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),懷來網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為懷來數(shù)千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的懷來做網(wǎng)站的公司定做!

在程序中定義一個變量時(shí),這個變量是有作用范圍的,變量的作用范圍被稱為它的作用域。

根據(jù)定義變量的位置,變量分為兩種:

  1. 局部變量:在函數(shù)中定義的變量,包括參數(shù),都被稱為局部變量。
  2. 全局變量:在函數(shù)外面、全局范圍內(nèi)定義的變量,被稱為全局變量。

每個函數(shù)在執(zhí)行時(shí),系統(tǒng)都會為該函數(shù)分配一塊“臨時(shí)內(nèi)存空間”,所有的局部變量都被保存在這塊臨時(shí)內(nèi)存空間內(nèi)。當(dāng)函數(shù)執(zhí)行完成后,這塊內(nèi)存空間就被釋放了,這些局部變量也就失效了,因此離開函數(shù)之后就不能再訪問局部變量了。

全局變量意味著它們可以在所有函數(shù)內(nèi)被訪問。

不管是在函數(shù)的局部范圍內(nèi)還是在全局范圍內(nèi),都可能存在多個變量,每個變量“持有”該變量的值。從這個角度來看,不管是局部范圍還是全局范圍,這些變量和它們的值就像一個“看不見”的字典,其中變量名就是字典的 key,變量值就是字典的 value。

實(shí)際上,Python 提供了如下三個工具函數(shù)來獲取指定范圍內(nèi)的“變量字典”:

globals():該函數(shù)返回全局范圍內(nèi)所有變量組成的“變量字典”。

locals():該函數(shù)返回當(dāng)前局部范圍內(nèi)所有變量組成的“變量字典”。

vars(object):獲取在指定對象范圍內(nèi)所有變量組成的“變量字典”。如果不傳入object 參數(shù),vars() 和 locals() 的作用完全相同。

globals() 和 locals() 看似完全不同,但它們實(shí)際上也是有聯(lián)系的,關(guān)于這兩個函數(shù)的區(qū)別和聯(lián)系大致有以下兩點(diǎn):

locals() 總是獲取當(dāng)前局部范圍內(nèi)所有變量組成的“變量字典”,因此,如果在全局范圍內(nèi)(在函數(shù)之外)調(diào)用 locals() 函數(shù),同樣會獲取全局范圍內(nèi)所有變量組成的“變量字典”;而 globals() 無論在哪里執(zhí)行,總是獲取全局范圍內(nèi)所有變量組成的“變量字典”。

一般來說,使用 locals() 和 globals() 獲取的“變量字典”只應(yīng)該被訪問,不應(yīng)該被修改。但實(shí)際上,不管是使用 globals() 還是使用 locals() 獲取的全局范圍內(nèi)的“變量字典”,都可以被修改,而這種修改會真正改變?nèi)肿兞勘旧恚旱ㄟ^ locals() 獲取的局部范圍內(nèi)的“變量字典”,即使對它修改也不會影響局部變量。

下面程序示范了如何使用 locals()、globals() 函數(shù)訪問局部范圍和全局范圍內(nèi)的“變量字典”:

def test ():
  age = 20
  # 直接訪問age局部變量
  print(age) # 輸出20
  # 訪問函數(shù)局部范圍的“變量數(shù)組”
  print(locals()) # {'age': 20}
  # 通過函數(shù)局部范圍的“變量數(shù)組”訪問age變量
  print(locals()['age']) # 20
  # 通過locals函數(shù)局部范圍的“變量數(shù)組”改變age變量的值
  locals()['age'] = 12
  # 再次訪問age變量的值
  print('xxx', age) # 依然輸出20
  # 通過globals函數(shù)修改x全局變量
  globals()['x'] = 19
x = 5
y = 20
print(globals()) # {..., 'x': 5, 'y': 20}
# 在全局訪問內(nèi)使用locals函數(shù),訪問的是全局變量的“變量數(shù)組”
print(locals()) # {..., 'x': 5, 'y': 20}
# 直接訪問x全局變量
print(x) # 5
# 通過全局變量的“變量數(shù)組”訪問x全局變量
print(globals()['x']) # 5
# 通過全局變量的“變量數(shù)組”對x全局變量賦值
globals()['x'] = 39
print(x) # 輸出39
# 在全局范圍內(nèi)使用locals函數(shù)對x全局變量賦值
locals()['x'] = 99
print(x) # 輸出99

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


網(wǎng)頁名稱:淺談Python變量作用域-創(chuàng)新互聯(lián)
轉(zhuǎn)載來源:http://weahome.cn/article/dsehhi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部