Форум сайта python.su
0
Имеется модуль, в котором определено несколько классов с одинаковым интерфейсом, но с разными реализациями. Используя dir(ModName), получаем список соотв. имен, в программе есть менюшка, где он отображается. Пользователь выбирает нужное. Далее, через eval создается экземпляр выбранного класса и поехали. Теперь для расширения функциональности можно просто добавить новый класс в модуль.
Вопрос: насколько это все разумно? Может, можно лучше сделать?
Офлайн
0
Мне лично не нравится пользоваться eval. Я работаю с такой конструкцией.
a = __import__(<имя файла откуда импортируешь>)
rezult = getattr(a,<имя класса>)(<параметры конструктора>)
Офлайн
0
Хм, да, так действительно лучше.
Офлайн