Чем или как заменить конструктор? Имеется базовый класс контроллера в конструкторе которого происходит проверка авторизованности пользователя. При создании дочерних классов возникла проблема: Если я в дочерних классах создаю новый конструктор, то он перекрывает конструктор базового класса.
Зачем я пытаюсь использовать конструктор в дочерних классах? - Один из примеров, это создание объекта модели конкретной страницы.
Можно ли как-то заменить конструктор? Или может быть есть вообще какой-то другой способ?

21 Авг 2019 в 07:06
240 +1
0
Ответы
1

В данной ситуации можно воспользоваться методом инициализации вместо конструктора. В базовом классе контроллера создайте метод инициализации, который будет выполнять проверку авторизации пользователя. Затем вызывайте этот метод из конструктора дочерних классов вместо того, чтобы создавать новый конструктор.

Пример:

class BaseController:
def __init__(self):
self.init()
def init(self):
# Проверка авторизации пользователя
pass
class ChildController(BaseController):
def __init__(self):
super().__init__()
def init(self):
super().init()
# Создание объекта модели конкретной страницы

Таким образом, вы сохраняете проверку авторизации в базовом классе, а в дочерних классах вызываете этот метод для выполнения необходимых действий.

20 Апр в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 749 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир