Python中,全局變數是在整個程序中都可以訪問的變數,可以在函數內部和外部進行訪問和修改。在Python中定義全局變數時,需要使用global關鍵字進行聲明。
一、Python全局變數定義
global_var = 10
def test_global():
print("全局變數global_var的值為:", global_var)
test_global()
輸出結果為:
全局變數global_var的值為: 10
在函數外定義一個全局變數global_var,然後在函數test_global中通過global_var來訪問和輸出全局變數的值。
二、Python全局變數和局部變數
global_var = 10
def test_local_global():
local_var = 20
global_var = 30
print("局部變數local_var的值為:", local_var)
print("局部變數global_var的值為:", global_var)
test_local_global()
print("全局變數global_var的值為:", global_var)
輸出結果為:
局部變數local_var的值為: 20 局部變數global_var的值為: 30 全局變數global_var的值為: 10
在函數中可以定義局部變數,局部變數的生命周期只在函數內部。如果在函數中需要對全局變數進行修改,需要使用global關鍵字來聲明。
三、Python多進程共享全局變數
import multiprocessing
global_var = 10
def test_multi_global():
global global_var
global_var += 1
print("進程ID:", multiprocessing.current_process().name, "全局變數的值為:", global_var)
if __name__ == '__main__':
p1 = multiprocessing.Process(target=test_multi_global)
p2 = multiprocessing.Process(target=test_multi_global)
p1.start()
p2.start()
p1.join()
p2.join()
print("最終全局變數的值為:", global_var)
輸出結果為:
進程ID: Process-1 全局變數的值為: 11 進程ID: Process-2 全局變數的值為: 12 最終全局變數的值為: 12
在多進程中需要對全局變數進行共享時,需要使用multiprocessing模塊,同時使用global關鍵字進行聲明和修改。
四、Python全局變數賦值
global_var = 10
def test_global_assignment():
global global_var
global_var = 20
test_global_assignment()
print("全局變數global_var的值為:", global_var)
輸出結果為:
全局變數global_var的值為: 20
在函數內部可以通過global關鍵字來修改全局變數的值。
五、Python全局變數聲明
global_var = 10
def test_global_declaration():
global global_var
global_var += 1
print("全局變數global_var的值為:", global_var)
test_global_declaration()
輸出結果為:
全局變數global_var的值為: 11
在函數內部可以通過global關鍵字來聲明全局變數,讓函數內部的變數變成全局變數。
六、Python局部變數全局變數
global_var = 10
def test_local2global():
global_var = 20
print("局部變數global_var的值為:", global_var)
def test_global2local():
global global_var
global_var = 30
print("全局變數global_var的值為:", global_var)
test_local2global()
print("全局變數global_var的值為:", global_var)
test_global2local()
print("全局變數global_var的值為:", global_var)
輸出結果為:
局部變數global_var的值為: 20 全局變數global_var的值為: 10 全局變數global_var的值為: 30
局部變數和全局變數可以同名,但是在函數內部如果定義了同名的變數,會優先使用局部變數。如果需要在函數內部修改全局變數的值,則需要使用global關鍵字。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/286483.html
微信掃一掃
支付寶掃一掃