在Python的模块化编程中导入模块的正确方法是什么?

时间:2018-08-14 01:00:17

标签: python module python-import python-module python-packaging

为Python中的模块化编程导入外部软件包的正确方法是什么? 有没有有用的文档,例如inPEP

详细信息

我是使用Python(或其他语言)进行软件包开发的新手,我想知道专家的工作方式,即使用pythonic的方式是什么,同时牢记效率,可读性和开发性(例如,IDE / Sublime将识别该包装的内部组件)。

例如,假设有一个需要使用numpy.log的模块。我应该import numpy as np在模块内部还是在__init__.py中?我应该只写from numpy import log吗?我应该在编写的所有模块中分别编写一个common_imports.py模块和from common_imports import *吗?

1 个答案:

答案 0 :(得分:-1)

通常,您可以根据需要导入模块。您需要做的就是在模块级别设置__all__变量。它由要公开给每个人的名字元组组成。例如,如果包__init__.py中有somepackage

#__init__.py
__all__=('func_a',)

def func_a(): pass
def func_b(): pass
def func_c(): pass
def func_d(): pass

然后,当您执行from somepackage import *时,将仅导入func_a。另外,如果您执行from somepackage import func_b,则Python会抛出ImportError