下面的代码在Python中的严格类型判断下给出了一个类型不匹配错误.
class DataClass1(ABC):
@abstractmethod
def to_int(self) -> int:
return 1
class DataClass2(DataClass1):
def __init__(self, value: int):
self.value = value
def to_int(self) -> int:
return self.value
class WidgetClass(ABC):
@abstractmethod
def calculate(self, data: DataClass1) -> DataClass1:
pass
class WidgetClassImp(WidgetClass):
def calculate(self, data: DataClass2):
return data
WidgetClassImp接收DataClass1的子类作为参数,导致类型不匹配.这令人惊讶,因为DataClass2是DataClass1的子类,实现了DataClass1接口.
我做错什么了吗?