关于python导入,有一些东西我没有掌握。我读了几十篇文章,但没有找到一个令人满意的答案。情况是这样的:
我正在写一个由几个模块组成的包。假设包名为pack1
。在__init__.py
文件中,为了公开我在模块中定义的类和函数,我写了:
from .module1 import *
from .module2 import *
...
现在,在模块1中:
^{pr2}$我的问题是当我
import pack1
在另一个项目中,我在pack1
的命名空间中看到sqrt
。我是否必须分别导入__init__.py
文件中的100个类中的每一个,以避免这种情况并保持我的命名空间干净?我是否必须对__init__.py
中的inspect模块进行一些修改,以便识别定义的类而不是导入的类(我认为这将非常难看)?或者,正如我所怀疑的那样,我在如何处理模块结构或import语句方面弄错了什么?在
通配符导入import该模块中全局命名空间中定义的所有。它不区分“本地”类、导入的模块、函数或变量。在
有两种解决方法:
import this
,显式优于隐式。在__all__
变量来定义当通配符导入模块时应该导入什么。见Can someone explain __all__ in Python?相关问题 更多 >
编程相关推荐