Как получить значение property в дочернем классе? Допустим, есть некий класс со следующим проперти:@property
@functools.lru_cache(maxsize=64)
def permission(self) -> int:
return 1
мы наследуем этот класс, и было бы неплохо, получить значение permission у родителя. Как это сделать? Что-то такое @property
@functools.lru_cache(maxsize=64)
def permission(self) -> int:
return Base.__init__(self, self.bot).permission + 1
Не подойдёт из-за, скорей всего, перезаписи некоторых свойств класса, которое происходит при инициализации.

21 Авг 2019 в 06:58
245 +1
1
Ответы
1

Для доступа к значению property в родительском классе из дочернего класса, вы можете использовать встроенную функцию super(). В вашем случае код может выглядеть примерно так:

class Base:
@property
@functools.lru_cache(maxsize=64)
def permission(self) -> int:
return 1
class Child(Base):
@property
def permission(self) -> int:
return super().permission + 1
child_instance = Child()
print(child_instance.permission) # Выведет 2

В этом случае, при вызове child_instance.permission, метод permission дочернего класса будет вызываться, но благодаря использованию super().permission, он сможет получить доступ к реализации метода permission из родительского класса и добавить к нему 1.

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