美文网首页
Python中字典和变量的作用域和名称空间

Python中字典和变量的作用域和名称空间

作者: R0lan | 来源:发表于2018-09-04 19:32 被阅读0次

个人写作水平欠佳,目前的随笔仅作练手。。。

所谓“作用域”和“名称空间”大概C里面提到的比较多,在Python里面相对的定义比较模糊,因为最近吃了很多亏,所以记录在这里。

1, 作用域

在多个py文件的python项目中,其实每个文件都是一个名称空间,他们有各自的全局变量(定义在函数外),局部变量(定义在函数内)。需要说明的是,

        1,声明的global变量可以直接修改全集变量,否则只能建立一个包含全局变量值的副本,以后做的任何操作和全局变量无关。 另外这里面涉及到局部变量是如何向上找自己的真正的变量声明的,这又是个深坑,按下不表:)

        2,如果全局变量是字典,那么可以直接在函数里面修改全局变量的值而不用声明global,这是因为字典在声明的时候已经“实例化”, 后续进行的修改都是对其引用的修改,而不会像变量那样再建立一个函数内的副本。

2,名称空间

我想谈一下有关名称空间是如何import和他们之间的全局变量是如何相互影响的。

假设有2个python文件   a.py  b.py在同一目录下

        1,在a.py中   import b, 这样在a中操作b下的成员需要冠以b,  这种情况下可以直接在b.xxx中insert变量xxx -->  b.xxx = 123     也可以直接对b中的字典直接操作(赋值...)

        2, 在a.py 中 from b import *   这样在a中可以直接操作b成员(虽然会导致一些名称空间重叠的问题),但是如果想要改变b中的变量值,仍要冠以b.xxx 才能操作, 也可以直接对b中的字典直接操作

以上两者还有一个共同点,那就是a 和b中的函数仍然会使用其各自名称空间中的全局变量,而不会使用在外部定义的变量。

相关文章

  • Python中字典和变量的作用域和名称空间

    个人写作水平欠佳,目前的随笔仅作练手。。。 所谓“作用域”和“名称空间”大概C里面提到的比较多,在Python里面...

  • 十、函数(进阶)

    一、名称空间和作用域 可以简单理解为存放变量名和变量值之间绑定关系的地方。 1. 名称空间 在 Python 中有...

  • 高阶函数

    一、名称空间和作用域 可以简单理解为存放变量名和变量值之间绑定关系的地方。 1. 名称空间 在 Python 中有...

  • 第十章 高阶函数

    一、名称空间和作用域 可以简单理解为存放变量名和变量值之间绑定关系的地方。 1. 名称空间 在 Python 中有...

  • 作用域

    Tensorflow中的变量作用域和名称作用域

  • 2019-01-04高阶函数

    高阶函数 一、名称空间和作用域 可以简单理解为存放变量值之间邦定关系的地方。 1.名称空间 在 Python 中有...

  • python名称空间和作用域

    https://www.jianshu.com/p/555598495cc6 语句 1,a 引用了 1 这个对象或...

  • 2021-12-10 Python-13

    自建函数 1.命名空间、作用域和本地函数Python 变量有全局和局部两种作用范围。命名空间就是用来描述变量的作用...

  • #抬抬小手学Python# Python 之作用域下的 glob

    global 和 nonlocal 作用域 该部分内容涉及 Python 变量作用域相关知识,变量作用域指的是变量...

  • 变量作用域

    0. 命名空间 变量作用域1. 变量作用范围:可操作范围2. Python 是静态作用域,变量的作用域源于它在代码...

网友评论

      本文标题:Python中字典和变量的作用域和名称空间

      本文链接:https://www.haomeiwen.com/subject/wienwftx.html