我有一个用 Python 编写的抽象类:
class AbsctracClass(ABC):
@abstractmethod
def method(self,
value1: int,
value2: float,
value3: str,
value4: Optional[list] = None,
value5: Optional[int] = None,
value6: Optional[float] = None,
... etc ...,
):
''' An abstract method for an abstract class '''
它有一个带有很多参数的抽象方法。我知道,我知道,将大量参数传递给函数不是一个好习惯,但现在这与我的问题无关。
现在我想编写另一个继承自 AbstractClass 的类。而且我必须手动复制所有参数及其来自抽象类的类型提示。
class AnotherClass(AbstractClass):
def method(self,
value1: int,
value2: float,
value3: str,
value4: Optional[list] = None,
value5: Optional[int] = None,
value6: Optional[float] = None,
... etc ...,
):
return value3 * (value2 + value3)
当我有几个抽象方法和几个类继承自它时,它不仅很麻烦,而且pylint
对代码重复感到尖叫。而且,老实说,我同意他的看法。
显然必须有更好的方法。是吗?