Python--day10--命名空间和作用域
命名空间:三种
1,内置命名空间 -->python解释器
#就是Python解释器一启动就可以使用的名字存储在内置命名空间中
#内置的名字在启动解释器的时候被加载进内存里
2,全局命名空间 -->我们写的代码但不是函数中的代码
#是在程序从上到下呗执行的过程中依次加载进内存的
#放置了我们设置的所有变量名和函数名
3,局部命名空间 -->函数
#就是函数内部定义的名字
#当调用函数的时候才会产生这个名称空间,随着函数执行的结束,这个命名空间就消失了。
#在局部:可以使用全局、内置命名空间中的名字
#在全局:可以使用内置命名空间的名字,但是不能在局部中使用
#在内置:(在还没读你的程序的时候就启动了,要是依赖全局或局部的话,是启动不了的)
不能使用局部和全局的名字的
#在正常情况下,直接使用内置的名字
#当我们再全局定义了和内置名字控件中同名的名字时,会使用全局的名字
#当我自己有的时候,我就不找我的上级要了
#上级没有就找上上级要,如果到了顶端(内置的名字空间)还没有,那就报错。
#多个函数就应该拥有多个独立的局部名字空间,不互相共享

例子:

依赖倒置原则:

作用域:两种
#全局作用域 ---- 作用在全局 ---- 内置和全局名字空间中的名字都属于全局作用域
----globals()查看全局变量

#局部作用域 ---- 作用在局部 ---- 函数(局部名字空间中的名字属于局部作用域)
----locals()查看局部变量


globals和locals总结:
#globals 永远打印全局的名字
#locals 输出什么 根据locals所在的位置
#对于不可变数据类型 在局部可是查看全局作用域中的变量
#但是不能直接修改
#如果想要修改,需要在程序的一开始添加global声明(尽量避免使用global,虽然实现了功能,但使代码不安全)

#如果一个局部(函数)内声明一个global变量,那么这个变量在局部的所有操作将对全局的变量有效

浙公网安备 33010602011771号