Зачем принимать кварги, но не использовать их?
Я смотрел на исходный код Django сегодня и заметил это:
class DjangoTestSuiteRunner(object):
def __init__(self, verbosity=1, interactive=True, failfast=True, **kwargs):
self.verbosity = verbosity
self.interactive = interactive
self.failfast = failfast
Почему они принимают в конструктор kwargs, но не делают с ними ничего?
1 ответ
Решение
Этот шаблон может облегчить обратную / прямую совместимость. Если более новая / более старая версия кода имеет больше / меньше параметров, тогда вы не сломаете все.
Кроме того, когда вы наследуете этот класс (например, с помощью mixins), может быть удобно просто принять все.
Imho, это не симпатичный шаблон для использования, но он работает.