1.作用域
定义在函数内部的变量拥有一个局部作用域,定义在函数外部的拥有全局作用域
局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内是访问。调用函数时,所以在函数内声明的变量都将被加入到作用域中
total = 0
def sum(m,n):
total = m +n
print('函数内部total:',total)
sum(10,20)
print('函数外部total:',total)
运行结果如下:
2.global 和 nonlocal关键字
当内部作用域想修改外部作用域的变量时,就要用到global和nonlocal关键字了
num = 1
def fun1():
global num
print(num)
num = 2
print(num)
fun1()
运行结果如下图:
如果要修改嵌套作用域(enclosing 作用域,外层非全局作用域)中的变量则需要 nonlocal 关键字了
def fun1():
num = 1
def inner():
nonlocal num
num = 2
print(num)
inner()
print(num)
fun1()
运行结果如下: