变量作用域及应用

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()

运行结果如下:


你可能感兴趣的:(变量作用域及应用)