Python 函数命名空间笔记

网友投稿 607 2022-05-30

命名空间和作用域:     命名空间有三种:         内置命名空间  --python解释器             就是python解释器一启动就可以使用的名字存储在命名空间中             内置的名字在启动解释器的时候被加载进内存里面         全局命名空间  --我们写在文件中的代码但不是写在函数中的代码             时在程序从上到下被执行的过程中依次加载到内存中的             放置了我们设置的所有变量和函数名         局部命名空间  --函数             就是函数内部定义的名字             当调用函数的时候 才会产生这个命名空间,随着函数执行的结束,这个命名空间就又消失了。      在局部:可以使用全局、内置命名空间中的名字      在全局:可以使用内置命名空间中的名字,但不能使用局部命名空间中的名字      在内置:不能使用局部和全局命名空间中的名字       在正常情况下,直接使用内置命名空间中的名字 当我们在全局定义了和内置命名空间中同名的名字时,会使用全局命名空间中的名字 当我自己有的时候,我就不找我的上级要了 如果自己没有,就找上一级要,上一级没有再找上一级,如果内置的命名空间都没有就报错 多个函数应该拥有多个独立的局部命名空间,不相互共享 作用域两种:     全局作用域:作用在全局,内置和全局命名空间中的名字都属于全局作用域  --globals()     局部作用域:作用在局部,函数(局部命名空间中的名字属于局部作用域) --locals()      对于不可变数据类型,在局部可以查看全局作用域中的变量 但是不能直接修改 如果想要修改,需要在程序的一开始添加global声明 如果在一个局部(函数)内声明一个global变量,那么这个变量在局部的所有操作将对全局的变量有效 nonlocal 只能用于局部变量 找上层中离当前函数最近一层的局部变量 声明了nonlocal的内部函数的变量修改会影响到 离当前函数最近一层的局部变量 对全局无效 对局部 也只是对 最近的 一层 有影响 命名空间 和 作用域 三种:内置 全局 局部 作用域:全局 局部 globals() locals()          global  在局部声明一个全局变量          nonlocal 在局部声明最近的上一层局部中的变量  作用域链 : 小范围用变量的时候,先从自己的名字空间找,              找不到就一层一层向外层找,知道找到为止。              找不到就报错。  函数的嵌套调用和嵌套定义      定义在函数内部的函数不能被外界直接调用      内部函数可以使用外部的变量  函数名的本质      就是一串内存地址      可以赋值、可以作为容器类型的元素、函数的参数和返回值 —— 第一类对象  闭包 : 内部函数使用外部函数的变量

Python 函数命名空间笔记

软件开发 人工智能 云计算 AI

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【云驻共创】华为供应链数字化分享
下一篇:华为云机器学习服务标准版:易用的云上机器学习平台
相关文章