все Python 3устарело в 3.3abcпонятие
abc.abstractproperty
абстрактные классы
Устарело (deprecated): абстрактное свойство. Используйте @property поверх @abstractmethod.
Синтаксис
@abc.abstractproperty # deprecated
История та же, что у abstractclassmethod: начиная с Python 3.3 property сама сообщает об абстрактности вложенной функции, поэтому отдельная обёртка стала лишней. В современной замене важен порядок — @property внешним, @abstractmethod внутренним, не наоборот.
Примеры
import abc
print(callable(abc.abstractproperty)) # → True
print(issubclass(abc.abstractproperty, property)) # → True
import abc
class Shape(abc.ABC): area = abc.abstractproperty(lambda self: 0)
print(Shape.__abstractmethods__) # → frozenset({'area'})
print(Shape()) # → TypeError (класс абстрактный)
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности