局部变量
- 局部变量,就是在函数内部定义的变量
- 其作用范围是这个函数内部,即只能在这个函数中使用,在函数的外部是不能使用的
- 局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储
- 当函数调用时,局部变量被创建,当函数调用完成后这个变量就不能够使用了
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