Pylint:\uuuuu init\uuuuuu[abstractmethod]vs[UselessuperDelegation]警告

2024-09-30 12:24:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个问题,我必须在两个警告之间进行选择:

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

生产类绝对需要是静态的,甚至不能用作单例,因此构造函数抛出异常非常重要。从这一点上,我无法避免另一个警告。也许还有别的办法

如果没有,您将保留(并禁用)哪个警告


Tags: inself警告initisdefclasssuper

热门问题