Skip to forum content
PyDev
Форум python-разработчиков
You are not logged in.
Please login or register.
Root
»
Python
»
Динамический импорт модулей
You must log in or register to post a new topic
Posts [ 1 to 4 of 4 ]
- Registered: Aug. 1, 2009, 3:56 p.m.
- Posts: 1
Начну с того, что много лет программируя на др. языках ни разу не писал на python. поэтому где то в терминах могут быть ошибки, опечатки...
Суть задачи. Где-то (в текстовом файле, БД, XML...) хранятся имена модулей, которые нужно подгружать в том или ином случае.
Допустим в какой то момент нужно подгрузить модуль (или класс: надеюсь не ошибся в названии ))) ) A, а в другой раз при иных обстоятельствах модуль В.
Вопрос:
Возможна ли реализация подобного на python?
Как?
ЗЫ: приложение изначально не знает какие вообще модули существуют.
ЗЫЗЫ: Гуглить буду, но от вашей помощи не откажусь. Спс...
- Registered: May 30, 2009, 4:30 p.m.
- Posts: 2
import <module_name> где надо
разве нет?
- Registered: Feb. 2, 2007, 9:35 p.m.
- Posts: 422
Если в переменной foo есть имя модуля, то подгрузить можно так:
__import__(foo, globals(), locals())
Сложные конструкции типа import mod1.mod2 или from mod1 import mod2 также можно делать через __import__ - читайте google, там про это, думаю, много написано :)
Last edited Aug. 2, 2009, 4:51 a.m.
- Registered: May 30, 2009, 4:30 p.m.
- Posts: 2
еще можно:
module_name = 'foo.bar'
module = __import__(module_name)
a, b = module.a, module.b
ну это если знаешь какие переменные там есть и только они и нужны.
Root
»
Python
»
Динамический импорт модулей