【发布时间】:2017-08-04 08:43:26
【问题描述】:
我想知道在创建具有抽象方法的抽象类时是否可以允许派生类中的这些方法的实现为每个函数具有不同数量的参数。
我目前有我的抽象类
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))。
这可能吗?如果可以,我将如何去做
【问题讨论】:
-
虽然您可以做到这一点,但这样做真的很奇怪。抽象方法的语义几乎总是包含它应该采用的参数。您可能需要重新考虑这个抽象方法或抽象类是否真的有意义。
标签: python python-3.x abc