python之global用法及說明
python之global用法
# 定義全局變量
# session = "初始全局值"
session = None
def no_global_demo():
# 未聲明 global,此處是創(chuàng)建局部變量 session,而非修改全局變量
# session = "局部變量值"
print("局部作用域內(nèi)(無global):", session)
def has_global_demo():
# 聲明 global,告知解釋器:此處操作的是全局作用域的 session
global session
session = "修改后的全局值"
print("局部作用域內(nèi)(有g(shù)lobal):", session)
# 執(zhí)行測試
no_global_demo()
print("在全局作用域調(diào)用(無global修改后):", session) # 仍為「初始全局值」
has_global_demo()
print("在全局作用域調(diào)用(有g(shù)lobal修改后):", session) # 變?yōu)椤感薷暮蟮娜种怠?
這段代碼,先在全局作用域定義了一個變量session賦值為None,然后定義了兩個函數(shù)
def no_global_demo()和def has_global_demo()
測試階段:先執(zhí)行無global函數(shù)def no_global_demo(),再執(zhí)行有g(shù)lobal函數(shù)def has_global_demo(),
結(jié)果如下:

# 定義全局變量
# session = "初始全局值"
session = None
def no_global_demo():
# 未聲明 global,此處是創(chuàng)建局部變量 session,而非修改全局變量
# session = "局部變量值"
print("局部作用域內(nèi)(無global):", session)
def has_global_demo():
# 聲明 global,告知解釋器:此處操作的是全局作用域的 session
global session
session = "修改后的全局值"
print("局部作用域內(nèi)(有g(shù)lobal):", session)
# 執(zhí)行測試
has_global_demo()
print("在全局作用域調(diào)用(有g(shù)lobal修改后):", session) # 變?yōu)椤感薷暮蟮娜种怠?
no_global_demo()
print("在全局作用域調(diào)用(無global修改后):", session) # 仍為「初始全局值」
這段代碼與上面的不同之處在于,在執(zhí)行測試階段,先測試有g(shù)lobal函數(shù),再測試無global函數(shù),測試結(jié)果如下:

將兩個結(jié)果放在一起對比來看

為什么會有這樣的效果呢?
這是因為先測試無global函數(shù)時,無global的函數(shù)中沒有g(shù)lobal,沒有改變session變量的值,session依然等于None,沒有改變,所以輸出的時候是None。
而后者的代碼,是先測試的有g(shù)lobal變量的函數(shù),因為函數(shù)中有g(shù)lobal變量,global變量就會告訴python解釋器:修改全局作用域中已存在的 session 變量的引用,即將全局變量session修改為
"修改后的全局值",流程如下:

所以說,先后執(zhí)行有與無global變量的函數(shù)時,輸出的結(jié)果就會不一樣,這樣更利于理解global變量在函數(shù)作用域中所起到的作用。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python輕量級定時任務(wù)調(diào)度APScheduler的使用
Apscheduler是一個基于Quartz的python定時任務(wù)框架,本文主要介紹了Python輕量級定時任務(wù)調(diào)度APScheduler的使用,具有一定的參考價值,感興趣的可以了解一下2024-02-02
PyTorch里面的torch.nn.Parameter()詳解
今天小編就為大家分享一篇PyTorch里面的torch.nn.Parameter()詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
python requests包的request()函數(shù)中的參數(shù)-params和data的區(qū)別介紹
這篇文章主要介紹了python requests包的request()函數(shù)中的參數(shù)-params和data的區(qū)別介紹,具有很好參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
Python實現(xiàn)批量提取word文件中文本框內(nèi)容
在日常的辦公中,有時需要提取多個word文件中的文字框的內(nèi)容,這篇文章主要為大家介紹了三種常見的方法來提取文本框的內(nèi)容,希望對大家有一定的幫助2024-02-02
Pytorch實現(xiàn)將label變成one hot編碼的兩種方式
這篇文章主要介紹了Pytorch實現(xiàn)將label變成one hot編碼的兩種方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02

