<分区>
关于 python 导入,有些东西我没有掌握。我已经阅读了数十篇文章,但没有找到满意的答案。情况是这样的:
我正在编写一个由多个模块组成的包。假设包名为 pack1
。在 __init__.py
文件中,为了公开我在模块中定义的类和函数,我写道:
from .module1 import *
from .module2 import *
...
现在,在模块 1 中:
from math import sqrt # a tool that I need
class class1:
<body>
class class2:
<body>
....
class class100:
<body>
我的问题是当我
import pack1
在另一个项目中,我在pack1
的命名空间 中看到sqrt
。我是否必须在 __init__.py
文件中分别导入 100 个类中的每一个,以避免这种情况并保持我的命名空间干净?我是否必须对 __init__.py
中的 inspect 模块进行一些修改,以便识别已定义但未导入的类(我认为这会非常难看)?或者,正如我怀疑的那样,我对应该如何处理模块结构或导入语句有一些误解?