如何在Python中进行多重导入?

45 投票
8 回答
140758 浏览
提问于 2025-04-16 01:22

在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)

不过在你的例子中其实并不需要这样做。

撰写回答