Python--day10--命名空间和作用域

命名空间:三种

1,内置命名空间  -->python解释器

    #就是Python解释器一启动就可以使用的名字存储在内置命名空间中

    #内置的名字在启动解释器的时候被加载进内存里

2,全局命名空间  -->我们写的代码但不是函数中的代码

#是在程序从上到下呗执行的过程中依次加载进内存的

#放置了我们设置的所有变量名和函数名

3,局部命名空间  -->函数

#就是函数内部定义的名字

#当调用函数的时候才会产生这个名称空间,随着函数执行的结束,这个命名空间就消失了。

 

#在局部:可以使用全局、内置命名空间中的名字

#在全局:可以使用内置命名空间的名字,但是不能在局部中使用

#在内置:(在还没读你的程序的时候就启动了,要是依赖全局或局部的话,是启动不了的)

      不能使用局部和全局的名字的

 

#在正常情况下,直接使用内置的名字

#当我们再全局定义了和内置名字控件中同名的名字时,会使用全局的名字

#当我自己有的时候,我就不找我的上级要了

#上级没有就找上上级要,如果到了顶端(内置的名字空间)还没有,那就报错。

#多个函数就应该拥有多个独立的局部名字空间,不互相共享

例子:

 

 

依赖倒置原则:

作用域:两种

#全局作用域  ----  作用在全局  ----  内置和全局名字空间中的名字都属于全局作用域

  ----globals()查看全局变量

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

  ----locals()查看局部变量

    globals和locals总结:

    #globals 永远打印全局的名字

    #locals 输出什么 根据locals所在的位置

 

 

#对于不可变数据类型 在局部可是查看全局作用域中的变量

#但是不能直接修改

#如果想要修改,需要在程序的一开始添加global声明(尽量避免使用global,虽然实现了功能,但使代码不安全)

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

posted @ 2018-10-04 14:31  莱茵河的雨季  阅读(90)  评论(0)    收藏  举报