gpt4 book ai didi

python - 包模块应该如何相互导入?

转载 作者:太空宇宙 更新时间:2023-11-03 18:52:46 27 4
gpt4 key购买 nike

我有这个包结构:

widget/
__init__.py
core.py
extension.py

__init__.py 为空。

core.py 包含以下内容:

import widget.extension as extension

它有效,但感觉就像我在回避包并只是从全局路径导入它(即爬出它只是为了回顾它)。如果我只是在 core.py 中导入扩展,它就不起作用。这有关系吗?我一开始就错了吗?我应该将这两个模块拉入 __init__.py 中吗?

最佳答案

我假设您正在使用 Python 3;在 Python 2 中,导入扩展将起作用,因为 Python 2 在查找全局绝对引用之前将首先查找本地相对导入。

您还有两个选择:

from widget import extension

from . import extension

后者相对于当前包进行导入,这允许您重命名widget包,而无需更新所有内部导入。您使用什么取决于风格和品味。

关于python - 包模块应该如何相互导入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17923161/

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