请问一下Python是否不建议使用抽象基类?

我现在在编写一个自动化测试的框架,其中有一个Data模块是进行数据处理的,但是传入的原始数据可能会有多个模板,所以我现在是创建了一个BaseData作为抽象基类,然后根据不同的原始数据模板编写不同的子类来进行处理,请问抽象基类在Python中是否不推荐使用?是否更推荐鸭子类型?如果使用鸭子类型其他模块调用Data类时,我怎样知道里面是否有相应的处理方法呢?

这是抽象基类,定义了几个处理数据的抽象方法,没有定义实现方法

class BaseData(abc.ABC):
    """
    测试数据基类,获取原始数据;
    子类继承后根据data_key处理不同格式的数据;
    """

    def __init__(self, data: List[tuple], data_key: Iterable):
        """
        初始化
        :param data: 原始测试数据,类型为namedtuple
        """
        # 验证参数是否为空
        if not data:
            raise ValueError('测试数据不能为空{}'.format(data))
        if not data_key:
            raise ValueError('数据Key键不能为空')
        # 初始化属性
        self._data = data
        self._data_key = list(data_key)

    @property
    @abc.abstractmethod
    def test_number(self):
        """
        测试编号
        :return:
        """
        return

    @property
    @abc.abstractmethod
    def test_explain(self):
        """
        测试说明
        :return:
        """
        return