Python中函數相關的變量作用域
變量作用域
指聲明變量在程序里的可應用范圍。
也就是變量可見性。
在程序中,一般會根據變量的“有效范圍”,將變量分為“局部變量”和“全局變量”。
- 全局變量
- 定義:定義在函數以外的變量擁有全局作用域。
- 特點:生命周期是整個程序的生命周期,也就是說,它會一直存活到腳本運行結束。對于所有程序內的函數,它們的值都是可以被訪問的。
- 局部變量
- 定義:定義在函數內的變量
- 特點:只能在聲明它的函數內訪問,生命周期是函數的生命周期,也就是說,函數調用執(zhí)行時它存活,函數調用結束,它銷毀,不能再使用。
舉個例子:
def user(): local_str = 'func v' print(local_str) local_str = 'global v' user() print(local_str)
輸出結果:
上面這個例子就說明了函數內定義的變量,只能在函數內使用,在函數外部不能使用:在函數外部 local_str = 'gobal v'
執(zhí)行后調用函數,函數內部的 local_str = 'func v'
語句并沒有改變函數外部local_str變量的值。
- 在函數內部使用
gobal
關鍵字將函數內部變量聲明為全局變量,此時該變量就和在函數外部使用的變量一樣具有全局變量的特點了。
def user(): global local_str local_str = 'func v' print(local_str) local_str = 'global v' user() print(local_str)
輸出結果:
使用關鍵字 global
修飾了函數內部的變量后,函數內部變量就變成了全局變量,也就可以改變函數外部全局變量的值。
python搜索標識符即變量名稱時順序
- 當搜索一個標識符的時候,Python先從局部作用域開始搜索,如果在局部作用域沒有找到這個變量,就會去全局作用域找,如果依然找不到,就會拋出NameError異常。
到此這篇關于Python中函數相關的變量作用域的文章就介紹到這了,更多相關Python變量作用域內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Django生成PDF文檔顯示網頁上以及PDF中文顯示亂碼的解決方法
今天小編就為大家分享一篇Django生成PDF文檔顯示網頁上以及PDF中文顯示亂碼的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12Python解決pip install時出現的Could not fetch URL問題
這篇文章主要介紹了Python解決pip install時出現的Could not fetch URL問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-08-08