git.net

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Pycharm offers only implementation of an abstract getter but not an abstract setter


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?