Python Glossary English

все 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Сообщить о неточности