Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 6, 2011 16:24:04

Evgeny
От:
Зарегистрирован: 2009-08-09
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа со списком классов в модуле. Разумно ли так?

Имеется модуль, в котором определено несколько классов с одинаковым интерфейсом, но с разными реализациями. Используя dir(ModName), получаем список соотв. имен, в программе есть менюшка, где он отображается. Пользователь выбирает нужное. Далее, через eval создается экземпляр выбранного класса и поехали. Теперь для расширения функциональности можно просто добавить новый класс в модуль.
Вопрос: насколько это все разумно? Может, можно лучше сделать?



Офлайн

#2 Апрель 6, 2011 19:54:15

minotavr_x86
От:
Зарегистрирован: 2010-05-21
Сообщения: 69
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа со списком классов в модуле. Разумно ли так?

Мне лично не нравится пользоваться eval. Я работаю с такой конструкцией.

a = __import__(<имя файла откуда импортируешь>)
rezult = getattr(a,<имя класса>)(<параметры конструктора>)



Офлайн

#3 Апрель 6, 2011 21:55:39

Evgeny
От:
Зарегистрирован: 2009-08-09
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа со списком классов в модуле. Разумно ли так?

Хм, да, так действительно лучше.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version