Pylint: __init__ [абстрактный метод] vs предупреждение [бесполезное супер-делегирование] - PullRequest
0 голосов
/ 13 июля 2020

У меня проблема, когда я должен выбрать одно из двух предупреждений:

from abc import ABCMeta, abstractmethod

class AbstractBaseClass:

    __metaclass__ = ABCMeta
    def __init__(self):
        raise NotImplementedError("The AbstractBaseClass class is designed to be used in a static way.")

    @staticmethod
    @abstractmethod
    def is_valid():
        pass

class UselessSuperDelegation(AbstractBaseClass):

    # Useless super delegation in method '__init__' (18:4) [useless-super-delegation]
    
    def __init__(self):
        super(UselessSuperDelegation, self).__init__()

    @staticmethod
    def is_valid():
        return True

class AbstratInitNotImplemented(AbstractBaseClass):

    # Method '__init__' is abstract in class 'AbstractBaseClass' but is not overrideden (25:0) [abstract-method]
    @staticmethod
    def is_valid():
        return True

Производственный класс обязательно должен быть stati c и даже не может использоваться как одиночный, поэтому очень важно, чтобы конструктор генерирует исключение. С этого момента я не могу избежать другого предупреждения. Может быть, есть другой подход?

Если нет, какое предупреждение вы бы оставили (и отключили)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...