Кеширование результата вычисляемых свойств
class Person:
def __init__(self, name, lastname):
self._name = name
self._lastname = lastname
self._fullname = None # для сохранения результата вычисления
@property
def name(self):
return self._name
@name.setter
def name(self, value):
self._name = value
self._fullname = None
@property
def lastname(self):
return self._lastname
@lastname.setter
def lastname(self, value):
self._lastname = value
self._fullname = None
@property
def full_name(self):
# Проверяем и кешируем вычисляемое свойство
if self._fullname is None:
self._fullname = f"{self._name} {self._lastname}"
return self._fullname
Last updated