Наилучшая практика, когда немного модифицируется унаследованный метод init? - PullRequest
1 голос
/ 20 февраля 2020

Я хотел сделать класс очень похожим на существующий в библиотеке python sklearn, позволяющий указать один дополнительный аргумент при его создании. Обычно я делал бы что-то вроде следующего:

from sklearn.pipeline import FeatureUnion

class Foo(FeatureUnion):
    def __init__(self, *args, some_bool=False, **kwargs):
        self.some_bool = some_bool
        super().__init__(*args, **kwargs)
    #

foo = Foo(transformer_list=[("transformer 1", None), ("transformer 2", None)])

Это дает ошибку времени выполнения:

Оценщики scikit-learn всегда должны указывать свои параметры в сигнатуре своих init (без varargs). с конструктором (self, * args, some_bool = False, ** kwargs) не следует этому соглашению.

Какова наилучшая практика для достижения чего-то подобного? Указана ли эта проблема c для изучения, или следует вообще избегать такого рода вещей (и в этом случае, что следует делать вместо этого?).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...