Что за звери *args и **kwargs

Views: 1
0
0
Немного поговорим о распаковке, звездочке *, позиционных и keyword аргументах, спецсимволах, а также о том как все это применять для args и kwargs 1) args и kwargs в параметрах функции - общепринятые имена, но можно использовать и другие 2) *позволяет распаковать iterable/sequence, а ** распакуют словарь 3) если нет никаких спецсимволов, то аргументы функции можно передавать как позиционно, так и keyword (то есть ключ=значение). Важно помнить, что позиционные всегда идут раньше keyword, при этом keyword аргументы между собой не обязаны хранить порядок. 4) спецсимвол / в параметрах функции говорит, что все, что ДО него должно передаваться как позиционные аргументы 5) спецсимвол * (без указания переменной), говорит о том что все, что ПОСЛЕ него должно передаваться как keyword аргумент 6) *args в параметрах функции соберет все позиционные аргументы в кортеж (tuple) 7) **kwargs в параметрах функции соберет все keyword аргументы в словарь (dict) Почитать: