__init__.py 导入的还包括我使用的模块,不仅仅是我自己定义的类。
__init__.py 导入的还包括我使用的模块,不仅仅是我自己定义的类。
这个问题已经在此处有解答:
我对 Python 的导入方式还有点不太明白。我已经阅读了数十篇文章,但都没有找到一个令人满意的答案。情况如下:
我正在编写一个由多个模块组成的包。假设这个包的名称是 pack1
。 在 __init__.py
文件中,为了公开我在模块中定义的类和函数,我写了:
from .module1 import * from .module2 import * ...
现在,在模块 1 中:
from math import sqrt # a tool that I need class class1: class class2: .... class class100:
我的问题是,当我在另一个项目中进行
import pack1
时,我在 pack1
的命名空间中看到了 sqrt
。我是否需要在 __init__.py
文件中单独导入这 100 个类中的每一个,以避免这种情况并保持我的命名空间干净?我是否需要在 __init__.py
中使用 inspect 模块进行某些 hack,以识别已定义但未导入的类(我认为这将非常丑陋)?或者,正如我所怀疑的那样,我误解了如何处理模块结构或导入语句的某些内容?
admin 更改状态以发布 2023年5月22日