*args
означает: собрать все дополнительные параметры без имени в этом списке:
def x(a, *args): pass
x(1, 2, 3)
назначает a=1
и args=[2,3]
.
**kwargs
назначает все дополнительные параметрыс именем dict
kawrgs
:
def x(a, **kw): pass
x(1, b=2, c=3)
присваивает a=1
и kw={b=2, c=3}
.
Код super(Bunch, self).__init__(*args, **kwds)
гласит: Вызовите метод __init__
изBunch
с экземпляром self
и параметрами *args, **kwds
.Это стандартный шаблон для инициализации суперклассов ( документы для super
)
И да, dict
- это встроенный тип данных для словарей .