Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 27, 2018 00:24:35

metotron
Зарегистрирован: 2015-08-20
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Генерация имени класса из строки и импорт всех классов из Модуля

Привет!

Не уверен, что корректно написал тему, но понятнее сформулировать кратко не получается
Мне нужно написать метод, который будет вызываться для перехода по страницам сайта через UI интерфейс
После каждого “клика” на меню метод должен возвращать Page класс новой страницы
Т.е. - нажали кнопку в меню “Контакты” - получили return ContactPage()
Упрощенно:

def navigation(page_name):
menu_click(page_name)
return PageClass()
Всего 15 элементов меню. Можно сделать 15 if которые бы возвращали 15 return но выглядит это диковато
Соответственно я хотел бы просто брать стринг из page_name и превращать это в имя класса для возврата в return
Погуглил, но все решения как-то выглядят очень “по индусски” может может кто подсказать как это сделать “по питоняшному”
И сразу же из этого вопроса вытекает второй.
Все станицы хранятся в Модуле Page который меее внутри подмодули (повторяет структуру сайта)
Page:
- contact_pages
- order_pages
и так дале
есть ли какая-либо черная магия которая бы позволила импортировать эти все страницы строкой типа
import Page
или
from Page import *

Спасибо

Офлайн

#2 Май 17, 2018 16:16:00

clipper1995
Зарегистрирован: 2018-03-19
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Генерация имени класса из строки и импорт всех классов из Модуля

Может примитивно, но по вроде питоновски

 def navigation(page_name):
    #menu_click(page_name)
    return {
        "condition1": "PageClass1",
        "condition2": "PageClass2",
        "condition3": "PageClass3",
        "condition4": "PageClass4"
    }[page_name]
print navigation("condition2")
# PageClass2
print navigation("condition4")
# PageClass4

Отредактировано clipper1995 (Май 17, 2018 16:16:47)

Офлайн

#3 Май 23, 2018 22:04:00

metotron
Зарегистрирован: 2015-08-20
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Генерация имени класса из строки и импорт всех классов из Модуля

clipper1995
Может примитивно, но по вроде питоновски
Спасибо!

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version