Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 14, 2012 20:39:55

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Python 3.2: Динамический импорт

iBiZoNiX

Python 3.2.2 (default, Sep  5 2011, 21:17:14) 
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> __import__('../closure.py')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: Import by filename is not supported.
>>>



Офлайн

#2 Апрель 14, 2012 21:07:36

ValeriyB
Зарегистрирован: 2012-04-10
Сообщения: 26
Репутация: +  1  -
Профиль   Отправить e-mail  

Python 3.2: Динамический импорт

Спасибо за наводки. Получилось.

Сделал используя словарь, вышло весьма удобно:

        plugins = {'plugins/1stplugin' : '1stPluginClass', 'plugins/2ndplugin' : '2ndPluginClass'}
        self.modules = {}
        for mod_path, cls_name in plugins .items():
            module = importlib.import_module(mod_path)
            self.modules[cls_name] = getattr(module, cls_name)
        def declareClass(self, cls_name):
            print(self.modules[cls_name])
      
        >>> print(self.modules)
        {'1stPluginClass' : <class 'plugins.1stPluginClass'>, '2ndPluginClass' : <class 'plugins.2ndPluginClass'>}
        >>> self.declareClass('1stPluginClass')
        <class 'plugins.1stPluginClass'>

Отредактировано ValeriyB (Апрель 14, 2012 21:08:47)

Офлайн

#3 Апрель 15, 2012 08:34:37

iBiZoNiX
От: Пирятин
Зарегистрирован: 2011-07-05
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

Python 3.2: Динамический импорт

Андрей Светлов
Странно, у меня бот по такому принципу работает на Python 3.2.2



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version