@abc.abstractproperty(fget=None, fset=None, fdel=None, doc=None)
A subclass of the built-in property()
, indicating an abstract property.
Using this function requires that the class’s metaclass is ABCMeta
or is derived from it. A class that has a metaclass derived from ABCMeta
cannot be instantiated unless all of its abstract methods and properties are overridden. The abstract properties can be called using any of the normal ‘super’ call mechanisms.
This special case is deprecated, as the property()
decorator is now correctly identified as abstract when applied to an abstract method:
class C(metaclass=ABCMeta): @property @abstractmethod def my_abstract_property(self): ...
The above example defines a read-only property; you can also define a read-write abstract property by appropriately marking one or more of the underlying methods as abstract:
class C(metaclass=ABCMeta): @property def x(self): ... @x.setter @abstractmethod def x(self, val): ...
If only some components are abstract, only those components need to be updated to create a concrete property in a subclass:
class D(C): @C.x.setter def x(self, val): ...
Deprecated since version 3.3: It is now possible to use property
, property.getter()
, property.setter()
and property.deleter()
with abstractmethod()
, making this decorator redundant.
Please login to continue.