gpt4 book ai didi

python - 执行 `from abc import xyz` 模块 `abc`去哪了?

转载 作者:太空狗 更新时间:2023-10-29 20:25:16 26 4
gpt4 key购买 nike

关于 Python 内部结构的问题。如果我执行 import abc,Python 会将模块读入一个新的命名空间,并绑定(bind)全局命名空间中的变量 abc 以指向新的命名空间。

如果我执行 from abc import xyz 然后它读取整个模块 abc 到一些新的命名空间然后绑定(bind)变量 xyz全局命名空间到绑定(bind)到 xyz 的同一个对象,在这个新创建的命名空间中,模块被读入。至少这是我的理解。

之后 abc 被读入的命名空间发生了什么?我假设它存在于某个地方,因为 xyz 可能会访问该命名空间中的其他对象。这个“幽灵”abc 命名空间能否以某种方式访问​​?

此外,我假设如果我这样做

from abc import xyz
from abc import fgh

那么只有一个“幽灵”abc 命名空间,所以如果 xyzfgh 修改 中的同一个全局变量abc,只会有一份。对吗?

最佳答案

模块对象存储在sys.modules中。因此,如果您执行 from abc import xyz,则 sys.modules['abc'] 将为您提供 abc 模块对象。

关于python - 执行 `from abc import xyz` 模块 `abc`去哪了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36481342/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com