Pycharm offers only implementation of an abstract getter but not an abstract setter
zljubisic at gmail.com
zljubisic at gmail.com
Wed Jun 24 17:46:35 EDT 2020
I would like to have an abstract class in which I will have an abstract property. So I used Pycharm in order to create an abstract (base) class:
import abc
class BaseSomeAbstract(abc.ABC):
_abs_prop = None
@property
@abc.abstractmethod
def abs_prop(self):
return self._abs_prop
@abs_prop.setter
@abc.abstractmethod
def abs_prop(self, value):
self._abs_prop = value
Now I have created a new file and a new class:
from subclassing.abstract.BaseSomeAbstract import BaseSomeAbstract
class ChildSomeAbstract(BaseSomeAbstract):
Now I pressed alt+enter, implement abstract methods. I got only a single choice abs_prop(self: BaseSomeAbstract).
If I choose this option, my subclass looks like this:
from subclassing.abstract.BaseSomeAbstract import BaseSomeAbstract
class ChildSomeAbstract(BaseSomeAbstract):
@property
def abs_prop(self):
pass
Why Pycharm didn't offer a setter as well as getter?
What is the propper way to define an abstract property, and how to force subclass to define setter and getter for the abstract property?
More information about the Python-list
mailing list