如何在Python中进行多重导入?
在Ruby中,我不需要重复写很多次“require”(在Python中是“import”),我可以这样做:
%w{lib1 lib2 lib3 lib4 lib5}.each { |x| require x }
这样它就会遍历“libs”这个集合,把每一个都“require”(导入)进来。现在我在写一个Python脚本,想要做类似的事情。有没有办法做到这一点,还是说我必须为每一个都写“import”?
直接的“翻译”可能会像下面的代码那样。不过,由于Python不支持用字符串来导入库,所以这样是行不通的。
requirements = [lib1, lib2, lib3, lib4, lib5]
for lib in requirements:
import lib
8 个回答
17
如果你想要多行输入:
from englishapps.multiple.mainfile import (
create_multiple_,
get_data_for_multiple
)
33
试试这个:
import lib1, lib2, lib3, lib4, lib5
你也可以通过这种方式来更改它们被导入时的名称,比如这样:
import lib1 as l1, lib2 as l2, lib3, lib4 as l4, lib5
74
对于已知的模块,只需要用逗号分开它们:
import lib1, lib2, lib3, lib4, lib5
如果你真的需要根据动态变量来编程导入,可以把你的 Ruby 代码直接翻译成这样:
modnames = "lib1 lib2 lib3 lib4 lib5".split()
for lib in modnames:
globals()[lib] = __import__(lib)
不过在你的例子中其实并不需要这样做。