定義在函數內部的變量擁有一個局部做用域,定義在函數外的擁有全局做用域函數
只要是*使用*變量,而該變量在全局域中有定義,而在局部沒有定義,則會使用全局變量。code
num = 100 def func(): x = num + 100 print(x) func() 輸出: 200
若是使用的變量在全局域中有定義,在局部域中也有定義,則默認會使用局部變量。作用域
num = 100 def func(): num = 200 x = num + 100 print(x) func() 結果: 300
若是要在函數中給全局變量賦值,須要用global關鍵字聲明。變量
num = 100 def func(): global num num = 200 num += 100 print(num) func() print(num) 輸出: 300 300
若是使用局部變量,咱們要先聲明,不然會報錯。co
num = 100 def func(): num += 100 print(num) func() print(num) 輸出: UnboundLocalError: local variable 'num' referenced before assignment
使用全局變量ab
num = 100 def func(): global num num += 100 print(num) func() print(num) 輸出: 200 200
使用局部變量
num = 100 def func(): num = 1 num += 100 print(num) func() print(num) 輸出: 101 100