Что означает kwargs?


#1

При создании конструктора по сниппету автоматически получается такая картина:

class XXX:
    def __init__(self, **kwargs):
        return super().__init__(**kwargs)  

Что здесь означает это **kwargs?


#2

Лайк за внимательность.

kwargs - это по сути всего лишь обозначение, denotation. Основная фишка кроется в двух звёздочках перед этим обозначением...

Метки * и ** перед названием параметра, который принимает метод/функция/процедура обозначают, что на место данного параметра может быть занесено не только какое-ибо одиночное значение, но и массив, список или кортеж. В случае если вы, передавая кортеж (например), пометите параметр принимаемой функции ** или * - это будет означать, что все элементы в вашем кортеже будут рассмотрены отдельно, как независимые элементы. Без данных метод кортеж будет рассмотрен как одно монолитное целое, и невозможным будет