LINUX.ORG.RU

Динамическая загрузка импортируемых модулей

 


0

1
import a1,a2,a3,a4

if c == "a1": a1.load()
elif c == "a2": a2.load()
elif c == "a3": a3.load()
elif c == "a4": a4.load()

Хочется заменить на 1 строчку. Как сделать ( получить список импортируемых модулуй ) ?



Последнее исправление: Jopich1 (всего исправлений: 1)

получить список импортируемых модулуй

sys.modules?

i-rinat ★★★★★
()

Ну если я тебя правильно понял:

import importlib

a = importlib.import_module(c) # c - your module name
a.load()

hippi90 ★★★★★
()

Что, кроме религии, мешает сделать так:

if c == "a1":
    import a1
elif c == "a2":
    import a2
elif c == "a3":
    import a3
elif c == "a4":
    import a4

???

а, в одну строчку, извини, тупанул…

Может попробовать так:

exec('import ' + str(c) + ' as a')

или

exec('import %s as a'%str(c))

???

shkolnick-kun ★★★★★
()
Последнее исправление: shkolnick-kun (всего исправлений: 6)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.