闭包函数可以引用定义它们的那个外围作用域之中的变量。 按照默认的写法,在闭包里面给变量赋值并不会改变外围作用域中的同名变量。 先用 nonlocal 语句说明,然后赋值,可以修改外围作用域中的变量。 除特别简单的函数外,尽量少用 nonlocal 语句。