Форум сайта python.su
Есть имя модуля в переменной и имя класса внутри модуля переменной.
Нужно создать инстанс этого класса, делаю так:
cls = "MyClass"
file = "filename"
m =__import__("folder."+file)
m = getattr(m,file)
c = getattr(m,cls)
i = c()
Офлайн
Ну можно в строчку записать, а смысл?
cls = "MyClass"
file = "filename"
i =getattr(m,getattr(__import__("folder.%s" % file), file), cls)()
Офлайн
PooHдействительно), поэтому я имел ввиду именно другой способ а не форматирование)
Ну можно в строчку записать, а смысл?
Офлайн
cls = "MyClass"
file = "filename"
m =__import__("folder."+file, {}, {}, [cls])
cls = getattr(m, cls)
Офлайн
EvgДык вот я смысла то и не пойму. Что значит более короткий вариант? у вас несколько тысяч в минуту импортируется? или запись длинная - плохо читается? так в функцию ее упрятать. Ну вот убейте, не пойму проблемы :( В чем смысл оптимизации сего куска?PooHдействительно), поэтому я имел ввиду именно другой способ а не форматирование)
Ну можно в строчку записать, а смысл?
Офлайн
PooHНу вот например он 1 постом выше вашего) значит что в нем меньше кода, а смысл в чисто психологическом восприятии и только)
Дык вот я смысла то и не пойму. Что значит более короткий вариант?
PooHНу перед тем как прятать лучше узнать нет ли чего-нить более короткого по умолчанию, а то так по неопытности столько всего напрятать можно)
запись длинная - плохо читается? так в функцию ее упрятать
Отредактировано (Окт. 15, 2009 18:45:15)
Офлайн
EvgСогласен. Хотя там создаются и тут же исчезают два словаря и список. ;)
Ну вот например он 1 постом выше вашего) значит что в нем меньше кода, а смысл в чисто психологическом восприятии и только)
Офлайн
PooHЭто скорее забота для интерпретатора как оптимизировать такие вещи, уж лучше беречь свои нервы и время читая меньше символов)
Хотя там создаются и тут же исчезают два словаря и список. wink
Офлайн
Главное не краткость, а читабельность.
Sparse is better than dense.
Readability counts.
Офлайн
они рядом)
Офлайн