Python 使用抽象基类指定强制输入和返回类型的接口

Python 使用抽象基类指定强制输入和返回类型的接口,python,abstract-class,Python,Abstract Class,我想编写一个抽象基类,它应该强制其派生类实现一个具有特定参数和特定返回的方法 但是,由于在Python中,在方法的签名中既不指定返回类型也不指定参数类型,因此如何强制执行这样的接口 例如: class BaseClass(ABC): @abstractmethod def __call__(self, image, labels=None): pass 我希望派生类必须实现\uuu call\uuu()方法,以便它接受一个3D Numpy数组(图像)和一个2D

我想编写一个抽象基类,它应该强制其派生类实现一个具有特定参数和特定返回的方法

但是,由于在Python中,在方法的签名中既不指定返回类型也不指定参数类型,因此如何强制执行这样的接口

例如:

class BaseClass(ABC):

    @abstractmethod
    def __call__(self, image, labels=None):
        pass
我希望派生类必须实现
\uuu call\uuu()
方法,以便它接受一个3D Numpy数组(
图像
)和一个2D Numpy数组(
标签
),并返回一个3D Numpy数组(转换后的图像)和一个2D Numpy数组(转换后的标签)


例如,我如何强制派生类中的
\uuu call\uuu()
方法必须准确返回该值(一个3D Numpy数组,或者一个2D Numpy数组)?

您不能静态地执行该操作,您可以使用元类在运行时失败。@MatanShahar谢谢!你能详细说明一下吗?具体来说,“使用元类”到底意味着什么?