簡(jiǎn)單了解python變量的作用域
更新時(shí)間:2019年07月30日 08:56:42 作者:人生與戲
這篇文章主要介紹了簡(jiǎn)單了解python變量的作用域,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
1.效果圖:

2.代碼
# 作用域 是 對(duì)象生效的區(qū)域(對(duì)象能被使用的區(qū)域)
# 全局作用域在任意位置可生效
# 局部作用域在函數(shù)內(nèi)生效
c = 20 # 全局變量
def fn():
d = 10 # a定義在了函數(shù)內(nèi)部,所以他的作用域就是函數(shù)內(nèi)部,函數(shù)外部無(wú)法訪問(wèn)
print('函數(shù)內(nèi)部:','c =',c)
print('函數(shù)內(nèi)部:','d =',d)
fn()
print('函數(shù)外部獲?。?,'c =',c)
print('函數(shù)外部獲?。?,'d =',d)
# 在Python中一共有兩種作用域
# 全局作用域
# - 全局作用域在程序執(zhí)行時(shí)創(chuàng)建,在程序執(zhí)行結(jié)束時(shí)銷(xiāo)毀
# - 所有函數(shù)以外的區(qū)域都是全局作用域
# - 在全局作用域中定義的變量,都屬于全局變量,全局變量可以在程序的任意位置被訪問(wèn)
#
# 函數(shù)作用域
# - 函數(shù)作用域在函數(shù)調(diào)用時(shí)創(chuàng)建,在調(diào)用結(jié)束時(shí)銷(xiāo)毀
# - 函數(shù)每調(diào)用一次就會(huì)產(chǎn)生一個(gè)新的函數(shù)作用域
# - 在函數(shù)作用域中定義的變量,都是局部變量,它只能在函數(shù)內(nèi)部被訪問(wèn)
#
# 變量的查找
# - 當(dāng)我們使用變量時(shí),會(huì)優(yōu)先在當(dāng)前作用域中尋找該變量,如果有則使用,
# 如果沒(méi)有則繼續(xù)去上一級(jí)作用域中尋找,如果有則使用,
# 如果依然沒(méi)有則繼續(xù)去上一級(jí)作用域中尋找,以此類(lèi)推
# 直到找到全局作用域,依然沒(méi)有找到,則會(huì)拋出異常
# NameError: name 'a' is not defined
3. 在函數(shù)內(nèi)修改全局變量 使用global關(guān)鍵字
效果圖:

代碼:
a = 20
def fn3():
# a = 10 # 在函數(shù)中為變量賦值時(shí),默認(rèn)都是為局部變量賦值
# 如果希望在函數(shù)內(nèi)部修改全局變量,則需要使用global關(guān)鍵字,來(lái)聲明變量
global a # 聲明在函數(shù)內(nèi)部的使用a是全局變量,此時(shí)再去修改a時(shí),就是在修改全局的a
a = 10 # 修改全局變量
print('函數(shù)內(nèi)部:','a =',a)
fn3()
print('函數(shù)外部:','a =',a)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python安裝xarray庫(kù)讀取.nc文件的詳細(xì)步驟
大家應(yīng)該都知道庫(kù)xarray可以幫我們讀取出nc文件的內(nèi)容,所以下面這篇文章主要給大家介紹了關(guān)于Python安裝xarray讀取.nc文件的詳細(xì)步驟,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07
使用Python對(duì)Dicom文件進(jìn)行讀取與寫(xiě)入的實(shí)現(xiàn)
這篇文章主要介紹了使用Python對(duì)Dicom文件進(jìn)行讀取與寫(xiě)入的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
Python實(shí)現(xiàn)的矩陣類(lèi)實(shí)例
這篇文章主要介紹了Python實(shí)現(xiàn)的矩陣類(lèi),結(jié)合完整實(shí)例形式分析了Python矩陣的定義、計(jì)算、轉(zhuǎn)換等相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
Python?中的對(duì)象析構(gòu)函數(shù)__del__?詳情
這篇文章主要介紹了Python?中的對(duì)象析構(gòu)函數(shù)del詳情,Python?中的類(lèi)的構(gòu)造函數(shù)???__init__???,?每當(dāng)實(shí)例產(chǎn)生就會(huì)調(diào)用這個(gè)構(gòu)造函下面更多相關(guān)內(nèi)容,需要的小伙伴可以參考一下2022-03-03
python實(shí)現(xiàn)dnspod自動(dòng)更新dns解析的方法
這篇文章主要介紹了python實(shí)現(xiàn)的dnspod自動(dòng)更新dns解析的方法,需要的朋友可以參考下2014-02-02

