读了查尔斯·迪尔巴赫的书《用Python介绍计算机科学》,我有一个问题:
所以引用就是对象内存中的地址。你知道吗
如果我没弄错的话,当我创建一个变量时,比如:
>>> a = 3
名称a由Python自动放在名称空间中。你知道吗
如果我这样做了:
>>> id(a)
4548344816
我得到对象3内存中的地址,a引用的对象。你知道吗
所以我想知道的是,名称a和参考值有什么关系。你知道吗
我猜,当一个名称被放入一个名称空间时,它包括两件事:
名称本身。
参考值(对象id)
像这样的一对:a:reference value
?你知道吗
如果是这样,是否有一些instrospection工具来查看名称空间中的条目是什么样子的?你知道吗
总的来说,Python名称空间是作为字典实现的。一个键映射到一个值,在一个命名空间中,键是标识符,名称,值引用名称所绑定的对象。你知道吗
您已经找到了使“reference”部分可见的工具} 和^{} 函数访问命名空间映射:
id()
函数。可以使用^{但是请注意,在一个函数中,本地名称空间得到了高度优化,
locals()
返回的字典只是实际结构的单向反映,它只是一个带有引用的C数组。你可以看,但不能触摸,通过这个映射。你知道吗如果您想进一步可视化Python名称空间的工作方式,请在Online Python Tutor中运行代码;它将向您展示内存中的名称和Python对象是如何交互的。你知道吗
相关问题 更多 >
编程相关推荐