定义在函数内部的变量拥有一个局部做用域,定义在函数外的拥有全局做用域函数
只要是*使用*变量,而该变量在全局域中有定义,而在局部没有定义,则会使用全局变量。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