gpt4 book ai didi

python - "from x.y import z"和 "import x.y.z as z"之间的区别

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

在您想将嵌套模块导入命名空间的情况下,我总是这样写:

from concurrent import futures

不过,我最近意识到这也可以使用“as”语法来表达。请参阅以下内容:

import concurrent.futures as futures

它具有看起来与其他进口产品更相似的主观优势:

import sys
import os
import concurrent.futures as futures

...增加冗长的缺点。

两者之间是否存在功能差异,或者在 PEP 或其他方面是官方首选?

最佳答案

有一些功能差异。首先,正如评论中已经提到的,import package.thing as thing 要求 thing 是一个模块(或子包,这实际上不是一个单独的案例,因为包计数作为模块)。

其次,在 Python 3.5 及更高版本中,如果 from package import thing 发现 package 的模块对象没有 thing 属性,它将尝试查找 sys.modules['package.thing'] 作为后备。 This was added处理某些循环相关进口的情况。 import package.thing as thing 尚未执行此处理,但它 will在 Python 3.7 中。

关于python - "from x.y import z"和 "import x.y.z as z"之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50299143/

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