您好,登錄后才能下訂單哦!
這篇文章主要介紹“Python中變量的作用域怎么使用”,在日常操作中,相信很多人在Python中變量的作用域怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python中變量的作用域怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
變量的作用域是指程序代碼能夠訪問該變量的區域,如果超出該區域,再訪問時就會出現錯誤。在程序中,一般會根據變量的 “有效范圍” 將變量分為 “全局變量” 和 “局部變量”。
局部變量是指在函數內部定義并使用的變量,它只在函數內部有效。即函數內部的名字只在函數運行時才會創建,在函數運行之前或者運行完畢之后,所有的名字就都不存在了。所以,如果在函數外部使用函數內部定義的變量,就會出現拋出 NameError 異常。
例如,定義一個名稱為 function 的函數,在該函數內部定義一個變量 poem(稱為局部變量),并為其賦值,然后輸出該變量,最后在函數體外部再次輸出 poem 變量,代碼如下:
def function(): poem = '面朝大海,春暖花開' print('局部變量poem = ', poem) # 輸出局部變量的值 function() # 調用函數 print('局部變量poem = ', poem) # 在函數體外輸出局部變量的值
運行上面的代碼將顯示如下圖所示的異常。
與局部變量對應,全局變量為能夠作用于函數內外的變量。全局變量主要有以下兩種情況:
(1) 如果一個變量,在函數外定義,那么不僅在函數外可以訪問到,在函數內也可以訪問到。在函數體以外定義的變量是全局變量。
例如,定義一個全局變量 poem,然后再定義一個函數,在該函數內輸出全局變量 poem 的值,代碼如下:
poem = '花有重開日,人無再少年' # 全局變量 def function(): print('函數體內:全局變量poem =', poem) # 在函數體內輸出全局變量的值 function() # 調用函數 print('函數體外:全局變量poem =', poem) # 在函數體外輸出全局變量的值
運行上面的代碼,將顯示以下內容:
函數體內:全局變量poem = 花有重開日,人無再少年
函數體外:全局變量poem = 花有重開日,人無再少年
說明:當局部變量與全局變量重名時,對函數體的變量進行賦值后,不影響函數體外的變量。也就是各敲各的鑼,各打各的鼓。
例如,在函數體外定義一個全局變量 a,并賦值為 100,在函數體內定義一個局部變量 a,并賦值為 10,代碼如下所示:
a = 100 # 定義一個全局變量 def function(): a = 10 # 定義局部變量 print(a) # 輸出局部變量的值 function() # 調用函數 print(a) # 輸出全局變量的值
執行結果如下所示:
10100
(2) 在函數體內定義,并且使用 global 關鍵字修飾后,該變量也就變為全局變量。在函數體外也可以訪問到該變量,并且在函數體內還可以對其進行修改。
例如,在函數體內定義一個變量,使用 global 關鍵字修飾。代碼如下所示:
poem = '天若有情天亦老,人間正道是滄桑' # 全局變量 print('函數體外:poem =', poem) # 在函數體外輸出全局變量的值 def function(): global poem # 將poem聲明為全局變量 poem = '人生得意須盡歡,莫使金樽空對月' # 全局變量 print('函數體內:poem =', poem) # 在函數體內輸出全局變量的值 function() # 調用函數 print('函數體外:poem =', poem) # 在函數體外輸出全局變量的值
運行上面的代碼,將顯示以下內容:
函數體外:poem = 天若有情天亦老,人間正道是滄桑
函數體內:poem = 人生得意須盡歡,莫使金樽空對月
函數體外:poem = 人生得意須盡歡,莫使金樽空對月
從上面的結果中可以看出,通過 global 關鍵字修飾的全局變量,是可以在函數體內部修改全局變量的值。
說明:盡管Python允許全局變量和局部變量重名,但是在實際開發時,不建議這么做,因為這樣容易讓代碼混亂,很難分清哪些是全局變量,哪些是局部變量。
到此,關于“Python中變量的作用域怎么使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。