命名空间和作用域
内置命名空间:python解释器一启动就可以使用的名字存储在内置命名空间中,如print,input,list,tuple
全局命名空间:程序从上到下被执行过程中依次加载进内存的;放置了我们设置的所有变量名和函数名
局部命名空间:函数内部定义的名字,使用locals()查看
对于不可变数据类型,在局部可查看全局作用域中的变量,但是不能直接修改,如果想要修改,需要在程序的一开始增加global声明
globals打印全局
locals输出靠所在位置
函数的嵌套和作用域链
nonlocal 声明一个上层的局部变量,离当前函数最近的一次局部变量
函数名可以赋值,可以作为容器类型的元素,可以作为函数的参数,可以作为返回值
闭包
闭包一定是嵌套的函数,且内部函数调用外部函数的变量。return 闭包
在函数外部使用内部的函数
https://www.cnblogs.com/Eva-J