gpt4 book ai didi

python - from ... import OR import ... 对于模块

转载 作者:IT老高 更新时间:2023-10-28 21:35:03 27 4
gpt4 key购买 nike

我应该使用

from foo import bar

import foo.bar as bar

导入模块并且不需要/希望更改名称(bar)?

有什么不同吗?有关系吗?

最佳答案

假设barfoo中的模块或包,没有区别*,没关系。这两个语句的结果完全相同:

>>> import os.path as path
>>> path
<module 'posixpath' from '/Users/mj/Development/venvs/stackoverflow-2.7/lib/python2.7/posixpath.pyc'>
>>> from os import path
>>> path
<module 'posixpath' from '/Users/mj/Development/venvs/stackoverflow-2.7/lib/python2.7/posixpath.pyc'>

如果bar不是模块或包,则第二种形式不起作用;而是抛出回溯:

>>> import os.walk as walk
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named walk

* 在 Python 3.6 及之前版本中,包含其他模块的包的初始化顺序存在一个错误,其中 在包的加载阶段使用 import contains.module.something as alias 在子模块中会失败,而 from contains.module import something as alias 不会。见 Imports in __init__.py and `import as` statement有关该问题的一个非常说明性的示例,以及 Python 问题 #23203#30024 .

关于python - from ... import OR import ... 对于模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22245711/

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