为Python中的模块化编程导入外部软件包的正确方法是什么? 有没有有用的文档,例如in或PEP?
我是使用Python(或其他语言)进行软件包开发的新手,我想知道专家的工作方式,即使用pythonic的方式是什么,同时牢记效率,可读性和开发性(例如,IDE / Sublime将识别该包装的内部组件)。
例如,假设有一个需要使用numpy.log
的模块。我应该import numpy as np
在模块内部还是在__init__.py
中?我应该只写from numpy import log
吗?我应该在编写的所有模块中分别编写一个common_imports.py
模块和from common_imports import *
吗?
答案 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