У меня есть родительский класс с функцией-заглушкой, которая должна быть перезаписана дочерними классами.Хитрость заключается в том, что дочерние классы передают переменные аргументы ключевых слов в функцию:
class Parent:
def __init__(self, arg):
kwargs = get_kwargs()
result = self.method_to_overwrite(arg, **kwargs)
# do some stuff with result
def method_to_overwrite(self, arg, **kwargs):
raise NotImplementedError
class Child1(Parent):
def method_to_overwrite(self, arg, arg1):
# do stuff
return something
class Child2(Parent):
def method_to_overwrite(self, arg, arg2):
# do different stuff
return something_else
Когда я это делаю, я получаю предупреждение, что методы method_to_overwrite
не соответствуют родительской подписи.Согласно этому предупреждение о задержке не является серьезной проблемой.Тем не менее, я бы не хотел этого предупреждения.
Кроме того, я бы хотел избегать делать что-то вроде kwargs.get('arg1')
каждый раз, когда я хочу получить доступ к аргументам, таким как arg1
и arg2
.Гораздо чище просто ссылаться на них напрямую.
Есть ли лучший способ сделать это?