nonlocal
可以看出在第一个函数中只改到了 local namespac
可以看出在第一个函数中只改到了 local namespace,而第二个函数加入了 global 才让 num 变成在 global namespace 之中。 Closure 也是个函数,但其绑定了一个环境,包含了一些 free variables 在之中。而这些 free variable 即使在定义的作用域已经无效了的时候仍然能够被使用