global? ?英?/?ɡl??b(?)l/?adj. 全球的,全世界的;全面的,整體的;(計算機)全局的;球形的
需求:如果有一個數據,在函數A和函數B中都要使用,該怎么辦?
---------將這個數據存儲在一個全局變量里面。
案例:如果把通訊錄管理系統更改為模塊化編程模式(程序 => 函數),面臨問題:
代碼:
# 定義全局變量 info = []# 定義funcA函數 def funcA():# 使用global聲明全局變量global info# 向info全局變量中添加數據info.append({...})# 定義funcB函數 def funcB():# 共享全局作用域中的全局變量infofor i in info:...
這個會產生一個問題:能不能在局部作用域中對全局變量進行修改?
# 定義全局變量num = 10 num = 10 # 定義一個函數func def func():# 嘗試在局部作用域中修改全局變量num = 20# 調用函數func func() # 嘗試訪問全局變量num print(num)
最終結果:彈出10,所以由運行結果可知,在函數體內部理論上是沒有辦法對全局變量進行修改的,所以一定要進行修改,必須使用global
關鍵字。
# 定義全局變量num = 10 num = 10 # 定義一個函數func def func():# 嘗試在局部作用域中修改全局變量global numnum = 20# 調用函數func func() # 嘗試訪問全局變量num print(num)