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