Я хотел сделать класс очень похожим на существующий в библиотеке 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 для изучения, или следует вообще избегать такого рода вещей (и в этом случае, что следует делать вместо этого?).