变量作用域指的是变量的有效范围

变量作用域指的是变量的有效范围,定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。当内部作用域想修改外部作用域的变量时可以使用关键字global,如果要修改嵌套作用域中的变量则需要 nonlocal 关键字。
def scope_test():
def do_local():
spam = "我是局部变量"

def do_nonlocal():
    nonlocal spam                   
    spam = "我不是局部变量,也不是全局变量"

def do_global():
    global spam                     
    spam = "我是全局变量"

spam = "原来的值"
do_local()
print('局部变量赋值后:', spam)      
do_nonlocal()
print('nonlocal变量赋值后:', spam)  
do_global()
print('全局变量赋值后:', spam)      

scope_test()
print('全局变量:', spam)
运行以上代码,并对运行结果进行分析。