gpt4 book ai didi

python - 如何构建模块以避免出现类似 "import module.module.module"的情况

转载 作者:行者123 更新时间:2023-11-28 17:37:15 29 4
gpt4 key购买 nike

我有一个结构如下的模块:

/module
__init__.py
/submod_1
__init__.py
submod_1_class.py
/submod_2
__init__.py
submod_2_class.py

但我发现必须在 submod_1_class.py 中导入一个类非常烦人:

from module.submod_1.submod_1_class import my_class

我希望能够输入的是:

from module import my_class

我浏览了 site-packages 文件夹并查看了流行的模块,如 numpy,但我一直无法弄清楚如何,例如:

import numpy
a = numpy.array([1,2,3,4,5])

可以在 numpy 数组对象的定义深埋在 numpy 包的几个子文件夹中时使用。

最佳答案

您可以使用 __init__.py 文件来定义可以从给定模块导入的内容。例如,对结构的一个非常简单的添加将从 submod_1_class 中提取 Class,这样外部用户就可以简单地 from module import Class

/module
__init__.py
from submod_1 import Class
/submod_1
__init__.py
from submod_1_class import Class
submod_1_class.py
/submod_2
submod_2_class.py

例如,在 numpy 中,顶级 __init__.py 包含 a line上面写着:

from .core import *

这意味着 /core/__init__.py 中定义的所有内容可以在 numpy 命名空间中直接在外部使用,即使它实际上可能深埋在一些复杂的结构中。

关于python - 如何构建模块以避免出现类似 "import module.module.module"的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29222428/

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