局部变量
def test1(): #定义局部变量 a = 100 print('修改前a=%d'%a) a = 200 print('修改后a=%d'%a) def test2(): a = 400 print('a=%d'%a) # 调用函数 test1() #返回 修改前a=100 # 修改后a=200 test2() #返回 a=400
全局变量
# 定义全局变量 a = 100 def test1(): print(a) # 虽然没有定义变量a但是依然可以获取其数据 def test2(): print(a) # 虽然没有定义变量a但是依然可以获取其数据 # 调用函数 test1() #返回 100 test2() #返回 100
global和nonlocal关键字
函数内部无法直接修改全局变量或在嵌套函数的外层函数声明的变量,但可以使用global或nonlocal关键字修饰变量以间接修改以上变量。
1.global关键字
使用global关键字可以将局部变量声明为全局变量
其使用方法如下: global 变量
number = 10 # 定义全局变量 def test_one(): global number # 使用global声明变量number为全局变量 number += 1 print(number) test_one() #返回 11 print(number) #返回 11
2.nonlocal关键字
使用nonlocal关键字可以在局部作用域中修改嵌套作用域中定义的变量
其使用方法如下: nonlocal 变量
def test(): number = 10 def test_in(): nonlocal number number = 20 test_in() print(number) test() #返回 20