Python中多重继承的最佳实践

2024-06-01 12:10:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我开发了一个基于继承性的代码,以避免在开发代码的新版本时复制过去的一些代码。当我滚动时,就这个主题提出了不同的问题,我想知道这两个片段之间的最佳实践是什么

from pipelines.data_enrichment.bank_reader import BankReader


class Pipeline(BankReader):

    def __init__(self, br_contract: dict, config: dict) -> None:
        BankReader.__init__(self,br_contract, config)

from pipelines.data_enrichment.bank_reader import BankReader


class Pipeline(BankReader):

    def __init__(self, br_contract: dict, config: dict) -> None:
        super().__init__(br_contract, config)

仅供参考:当我想创建第三个类时,我提出了这两个实现,编写了两个版本的管道,如下所示,但只启动了一次init()函数。这要求我使用下面代码中的第一个选项:

from pipelines.data_enrichment.versions.bank_reader_v1 import Pipeline as BRv1
from pipelines.data_enrichment.versions.bank_reader_v2 import Pipeline as BRv2


class Pipeline(BRv1,BRv2):
    def __init__(self, br_contract: dict, config: dict) -> None:
        BRv1.__init__(self,br_contract, config)

这都是好的做法还是我遗漏了什么


Tags: 代码frombrselfconfigdatapipelineinit