我想知道处理 Pylint 错误的最佳方法是什么,抱怨本例中的情况:
class Base:
def some_funct(self) -> List:
"""
Intended to be overwritten in child classes, but
if not, it's ok to return an empty list
"""
return []
class Child1(Base):
def some_funct(self) -> List:
# Now, this does actual stuff!!
return [a for a in self.some_iterable]
class Child2(Base):
# An empty list is fine for this one
pass
Pylint 会说
Base.some_funct
可能是一个函数,因为它不使用 self
(这……是真的,但我希望 self
留在那里)
是否有更好的解决方案,只需将其标记为
pylint: disable
?这......我的意思是......如果它是什么,它就是它是什么,它不是一个“交易破坏者”,但如果有更好的方法,很高兴知道。
这是针对 Python 3.6 的,以防相关。
将该方法声明为
staticmethod
以使 pylint
高兴:
class Base:
@staticmethod
def some_funct() -> List:
"""
Intended to be overwritten in child classes, but
if not, it's ok to return an empty list
"""
return []
由于
self
参数在正常情况下是隐式传递的,因此它不是方法的向外签名的一部分。这允许在基类中将该方法定义为 staticmethod
,并且仍然用派生类中的常规方法替换它,而不改变外部行为。