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