gpt4 book ai didi

Python 相对导入和包

转载 作者:行者123 更新时间:2023-11-30 23:17:38 27 4
gpt4 key购买 nike

我正在尝试创建一个包,并且我有一个如下所示的树结构:

dionesus/
setup.py
dionesus/
__init__.py
dionesus.py

Dionesus.py 有一个名为 Dionesus 的类。 init.py 为空。

如何导入 Dionesus 类而无需指定顶级文件夹?

我必须做:

import dionesus
d = dionesus.dionesus.Dionesus()

我希望导入语句看起来像:

import dionesus
d = dionesus.Dionesus()

最佳答案

首先,您仍然可以使用绝对导入,只需使用 from ... import 形式即可:

from dionesus import dionesus
d = dionesus.Dionesus()

如果您需要在同一个模块中导入 dionesus 和 dionesus.dionesus ,这显然会出现问题,但这几乎隐含着为它们提供相同的非歧义名称的愿望......

或者,如果您是 dionesus.dionesus 的 parent 、 sibling 或其他亲戚,则可以使用相对导入。根据您所在的位置,情况会有所不同(毕竟,这就是相对的含义);您可能从 ..dionesus.. 等导入。但无论它在哪里,它都是相同的 from ... 导入 形式如上,只是使用相对名称而不是绝对名称。 (事实上​​,相对导入总是使用from形式。)

from . import dionesus
d = dionesus.Dionesus()

关于Python 相对导入和包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27239643/

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