python - 具有不同数量参数的抽象类

标签 python python-3.x abc

我想知道在创建带有抽象方法的抽象类时是否可能允许派生类中这些方法的实现为每个函数具有不同数量的参数。

我目前有我的抽象类

from abc import ABCMeta, abstractmethod

class View(metaclass=ABCMeta):
    @abstractmethod
    def set(self):
        pass

    @abstractmethod
    def get(self):
        pass

但我希望能够在一个类中使用具有 1 个参数的集合来实现它并获得 2 个参数 (set(param1)get(param1, param2)), 然后在另一个类中也继承了它,但是 set 有 0 个参数,get 有 2 个参数 (set()get(param1, param2))。

这是否可能,如果可能,我将如何着手去做

最佳答案

没有检查具体实现采用多少参数。所以已经没有什么能阻止你这样做了。

只需定义这些方法来获取您需要接受的任何参数:

class View(metaclass=ABCMeta):
    @abstractmethod
    def set(self):
        pass

    @abstractmethod
    def get(self):
        pass


class ConcreteView1(View):
    def set(self, param1):
        # implemenation

    def get(self, param1, param2):
        # implemenation


class ConcreteView2(View):
    def set(self):
        # implemenation

    def get(self, param1, param2):
        # implemenation

关于python - 具有不同数量参数的抽象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42778784/

相关文章:

python - 模块名称中的前导下划线

python - 从python中的kibana查询?

Python 打印错误消息 io.UnsupportedOperation : not readable

python - 带有 ABC 混入的 NamedTuple 类

python-3.x - from collections import Container 和 from collections.abc import Container 之间的区别

python - 画出 turtle python 的形状

python - Music21 - 无法显示休止符

Python Matplotlib 散点图添加 x 轴标签

python - 联立线性方程组求解中的 NaN 和奇异矩阵误差

Python 继承、元类和 type() 函数