簡單了解python變量的作用域
更新時間:2019年07月30日 08:56:42 作者:人生與戲
這篇文章主要介紹了簡單了解python變量的作用域,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
1.效果圖:
2.代碼
# 作用域 是 對象生效的區(qū)域(對象能被使用的區(qū)域) # 全局作用域在任意位置可生效 # 局部作用域在函數(shù)內(nèi)生效 c = 20 # 全局變量 def fn(): d = 10 # a定義在了函數(shù)內(nèi)部,所以他的作用域就是函數(shù)內(nèi)部,函數(shù)外部無法訪問 print('函數(shù)內(nèi)部:','c =',c) print('函數(shù)內(nèi)部:','d =',d) fn() print('函數(shù)外部獲?。?,'c =',c) print('函數(shù)外部獲?。?,'d =',d) # 在Python中一共有兩種作用域 # 全局作用域 # - 全局作用域在程序執(zhí)行時創(chuàng)建,在程序執(zhí)行結束時銷毀 # - 所有函數(shù)以外的區(qū)域都是全局作用域 # - 在全局作用域中定義的變量,都屬于全局變量,全局變量可以在程序的任意位置被訪問 # # 函數(shù)作用域 # - 函數(shù)作用域在函數(shù)調(diào)用時創(chuàng)建,在調(diào)用結束時銷毀 # - 函數(shù)每調(diào)用一次就會產(chǎn)生一個新的函數(shù)作用域 # - 在函數(shù)作用域中定義的變量,都是局部變量,它只能在函數(shù)內(nèi)部被訪問 # # 變量的查找 # - 當我們使用變量時,會優(yōu)先在當前作用域中尋找該變量,如果有則使用, # 如果沒有則繼續(xù)去上一級作用域中尋找,如果有則使用, # 如果依然沒有則繼續(xù)去上一級作用域中尋找,以此類推 # 直到找到全局作用域,依然沒有找到,則會拋出異常 # NameError: name 'a' is not defined
3. 在函數(shù)內(nèi)修改全局變量 使用global關鍵字
效果圖:
代碼:
a = 20 def fn3(): # a = 10 # 在函數(shù)中為變量賦值時,默認都是為局部變量賦值 # 如果希望在函數(shù)內(nèi)部修改全局變量,則需要使用global關鍵字,來聲明變量 global a # 聲明在函數(shù)內(nèi)部的使用a是全局變量,此時再去修改a時,就是在修改全局的a a = 10 # 修改全局變量 print('函數(shù)內(nèi)部:','a =',a) fn3() print('函數(shù)外部:','a =',a)
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
使用Python對Dicom文件進行讀取與寫入的實現(xiàn)
這篇文章主要介紹了使用Python對Dicom文件進行讀取與寫入的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04Python?中的對象析構函數(shù)__del__?詳情
這篇文章主要介紹了Python?中的對象析構函數(shù)del詳情,Python?中的類的構造函數(shù)???__init__???,?每當實例產(chǎn)生就會調(diào)用這個構造函下面更多相關內(nèi)容,需要的小伙伴可以參考一下2022-03-03python實現(xiàn)dnspod自動更新dns解析的方法
這篇文章主要介紹了python實現(xiàn)的dnspod自動更新dns解析的方法,需要的朋友可以參考下2014-02-02