Как получить значение 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 Не подойдёт из-за, скорей всего, перезаписи некоторых свойств класса, которое происходит при инициализации.
Для доступа к значению property в родительском классе из дочернего класса, вы можете использовать встроенную функцию super(). В вашем случае код может выглядеть примерно так:
В этом случае, при вызове child_instance.permission, метод permission дочернего класса будет вызываться, но благодаря использованию super().permission, он сможет получить доступ к реализации метода permission из родительского класса и добавить к нему 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.