我想编写一个抽象基类,该基类应强制其派生类实现一个具有特定参数和特定返回的方法。
但是,由于在Python中既没有在方法的签名中指定返回类型也没有指定参数类型,我如何强制执行这样的接口?
例如:
class BaseClass(ABC):
@abstractmethod
def __call__(self, image, labels=None):
pass
我希望派生类必须实现__call__()
方法,以便它接受3D Numpy数组(image
)作为参数,并且可选地接受2D Numpy数组(labels
) ,它返回一个3D Numpy数组(转换后的图像),再一次可选地返回一个2D Numpy数组(转换后的标签)。
例如,如何强制执行派生类中的__call__()
方法必须完全返回(3D Numpy数组,以及可选的2D Numpy数组)?