进阶!深入函数!
Posted earth-smathing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进阶!深入函数!相关的知识,希望对你有一定的参考价值。
1.命名空间
"我思故我在",思考的结果最终还需要代码来实现,当你想要实现某些功能时,解释器必然参与其中。与此同时,内存中便会"开辟"出一个空间,用来记录变量名及其值得对应关系。这里需要说明一下,当解释器遇到函数时,函数内部如何,解释器是无视的,唯有其被调用时,解释器才会认真参与到函数的运行当中去,直到运行完毕,内存被自然释放。
2.命名空间的分类
全局命名空间:拿函数做一个参照物,在一个py文件中,我们在函数外部命名的变量均属于全局命名空间
局部命名空间:函数内部命名的变量属于局部命名空间
内置命名空间:存放python解释器为我们提供的内置函数,如list,tuple,str,int等等
3.作用域
作用域:即为作用范围,分为全局作用域和局部作用域
全局作用域:包括全局命名空间和内置命名空间。在整个文件任何位置均可使用。
局部作用域:只在函数内部可以使用。
4.globals(), locals()
globals()函数用来查看全局作用域中的内容
locals()函数用来查看局部作用域中的变量
5.关键字 global 和 nonlocal
这段代码中,global表示,不再使用局部作用域中的变量,改为使用全局变量。
nonlocal表示在局部作用域中,调用父级命名空间中的变量
6.函数的嵌套
至于函数的嵌套,直接给代码,体验一下吧。
作于十日晚,周边较为嘈杂。
以上是关于进阶!深入函数!的主要内容,如果未能解决你的问题,请参考以下文章
深入理解javascript函数进阶系列第二篇——函数柯里化