我想知道在创建带有抽象方法的抽象类时是否可能允许派生类中这些方法的实现为每个函数具有不同数量的参数。
我目前有我的抽象类
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/