Многопроцессность, многопоточность, асинхронность в Python и не только. Что это и как работает?
Что такое *args и **kwargs в Python?
Источник: Nuances of Programming Функции — жизнь, не так ли? Не важно, новичок вы в программировании в целом или пришли из другого языка: осваивая Python, вы узнаете, что число параметров, указанных в определении функции, совпадает с числом передаваемых аргументов. Это является основой и помогает понять устройство мира. Как бы то ни было, этот же принцип ставит вас в затруднительное положение, как только в определении функции вы видите *args или **kwargs. Не позволяйте синтаксису вас напугать...
Что такое *args в Python
*args в Python - это способ в функции обрабатывать произвольное количество аргументов. Эти аргументы передаются как кортеж, что позволяет функции принимать более гибкое количество аргументов. Есть функция hello, которая принимает список с именами, проходит по нему циклом и каждого приветствует. Работает.
Но что если мы не хотим записывать имена в список, а хотим сразу же подавать их в функцию в виде аргументов? Подадим имена в вызове функции через запятую и воспользуемся * для запаковки аргументов в кортеж...