Найти - Пользователи
Полная версия: Импорт модуля и класса на лету, подскажите более короткий вариант
Начало » Python для экспертов » Импорт модуля и класса на лету, подскажите более короткий вариант
1 2 3
Evg
Есть имя модуля в переменной и имя класса внутри модуля переменной.
Нужно создать инстанс этого класса, делаю так:
        cls = "MyClass"
file = "filename"

m =__import__("folder."+file)
m = getattr(m,file)
c = getattr(m,cls)
i = c()
можно ли сделать короче?
PooH
Ну можно в строчку записать, а смысл?
cls = "MyClass"
file = "filename"

i =getattr(m,getattr(__import__("folder.%s" % file), file), cls)()
Evg
PooH
Ну можно в строчку записать, а смысл?
действительно), поэтому я имел ввиду именно другой способ а не форматирование)
Андрей Светлов
cls = "MyClass"
file = "filename"

m =__import__("folder."+file, {}, {}, [cls])
cls = getattr(m, cls)
Короче - никак. __import__ всегда вернет модуль.
PooH
Evg
PooH
Ну можно в строчку записать, а смысл?
действительно), поэтому я имел ввиду именно другой способ а не форматирование)
Дык вот я смысла то и не пойму. Что значит более короткий вариант? у вас несколько тысяч в минуту импортируется? или запись длинная - плохо читается? так в функцию ее упрятать. Ну вот убейте, не пойму проблемы :( В чем смысл оптимизации сего куска?
Evg
PooH
Дык вот я смысла то и не пойму. Что значит более короткий вариант?
Ну вот например он 1 постом выше вашего) значит что в нем меньше кода, а смысл в чисто психологическом восприятии и только)

PooH
запись длинная - плохо читается? так в функцию ее упрятать
Ну перед тем как прятать лучше узнать нет ли чего-нить более короткого по умолчанию, а то так по неопытности столько всего напрятать можно)
PooH
Evg
Ну вот например он 1 постом выше вашего) значит что в нем меньше кода, а смысл в чисто психологическом восприятии и только)
Согласен. Хотя там создаются и тут же исчезают два словаря и список. ;)
Evg
PooH
Хотя там создаются и тут же исчезают два словаря и список. wink
Это скорее забота для интерпретатора как оптимизировать такие вещи, уж лучше беречь свои нервы и время читая меньше символов)
Ferroman
Главное не краткость, а читабельность.
Sparse is better than dense.
Readability counts.
Evg
они рядом)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB