<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
變數的作用域是指程式程式碼能夠存取該變數的區域,如果超出該區域,再存取時就會出現錯誤。在程式中,一般會根據變數的 “有效範圍” 將變數分為 “全域性變數” 和 “區域性變數”。
區域性變數是指在函數內部定義並使用的變數,它只在函數內部有效。即函數內部的名字只在函數執行時才會建立,在函數執行之前或者執行完畢之後,所有的名字就都不存在了。所以,如果在函數外部使用函數內部定義的變數,就會出現丟擲 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中變數的作用域的具體使用的文章就介紹到這了,更多相關Python 變數的作用域內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45