В Ruby, вместо того, чтобы повторить "требование" ("импорт" в Python) слово много времен, я делаю
%w{lib1 lib2 lib3 lib4 lib5}.each { |x| require x }
Таким образом, это выполняет итерации по набору, "освобождает", и "потребуйте" (импортируют) каждого из них. Теперь я пишу сценарий Python, и я хотел бы сделать что-то как этот. Есть ли путь к, или сделайте я должен записать "импорт" для всех них.
Простая "клевета" была бы чем-то как следующий код. Так или иначе, так как Python не импортирует, освобождает названный как строки, он не работает.
requirements = [lib1, lib2, lib3, lib4, lib5]
for lib in requirements:
import lib
Заранее спасибо
Для известных модулей просто разделяйте их запятыми:
import lib1, lib2, lib3, lib4, lib5
Если вам действительно нужно программно импортировать на основе динамических переменных, то буквальный перевод вашего ruby будет:
modnames = "lib1 lib2 lib3 lib4 lib5".split()
for lib in modnames:
globals()[lib] = __import__(lib)
Хотя в вашем примере в этом нет необходимости.
Попробуйте следующее:
import lib1, lib2, lib3, lib4, lib5
Вы также можете изменить имя, под которым они импортируются, таким образом, например:
import lib1 as l1, lib2 as l2, lib3, lib4 as l4, lib5
Вы можете импортировать из строки, которая содержит имя вашего модуля с помощью функции __ import __
.
requirements = [lib1, lib2, lib3, lib4, lib5]
for lib in requirements:
x = __import__(lib)