Pylint:方法可以是 base class 中的一个函数
Pylint: Method could be a function in base class
我想知道处理 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.safe_implementation
可能是一个函数(这......是真的,但我希望 self
留在那里)
是否有更好的解决方案,只是将其标记为pylint: disable
?哪个......我的意思是......如果它是这样,它就是它并且它不是 "deal breaker" ,但如果有更好的方法,它会是很高兴知道。
这适用于 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
参数在正常情况下是隐式传递的,因此它不是方法的外部签名的一部分。这允许将方法定义为基础 class 中的 staticmethod
并且仍然用派生 class 中的常规方法替换它而不改变外部行为。
我想知道处理 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.safe_implementation
可能是一个函数(这......是真的,但我希望 self
留在那里)
是否有更好的解决方案,只是将其标记为pylint: disable
?哪个......我的意思是......如果它是这样,它就是它并且它不是 "deal breaker" ,但如果有更好的方法,它会是很高兴知道。
这适用于 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
参数在正常情况下是隐式传递的,因此它不是方法的外部签名的一部分。这允许将方法定义为基础 class 中的 staticmethod
并且仍然用派生 class 中的常规方法替换它而不改变外部行为。