Python Tutorial

Что такое **kwargs в Python

Что такое **kwargs в Python

**kwargs в Python позволяет функции принимать произвольное количество именованных аргументов (также известных как ключевые аргументы). Эти аргументы передаются в виде словаря, что обеспечивает удобство и гибкость при передаче именованных аргументов. Две звездочки подряд выполняют операцию распаковки ключевых аргументов функции со значениями в словарь.
Eсть функция check_buy.

Мы хотим передавать в нее информацию о том, каких и сколько приобретено фруктов. Для начала создадим функцию и посмотрим, как происходит распаковка в словарь.
def check_buy(**kwargs):
    print(kwargs)

check_buy(apple=1, orange=2, pineapple=3)
Мы видим, что имена аргументов стали ключами словаря kwargs, а значения аргументов стали значениями этих ключей.

Сделаем так, чтобы функция накапливала информацию о покупках в общем словаре all_fruits. Создаем общий словарь.
Затем скажем функции идти по словарю kwargs, получать ключ и значение, потом искать такой же ключ в общем словаре all_fruits и если он есть, то увеличивать его значение, а если его нет - создать и присвоить текущее значение из переменной v.
def check_buy(**kwargs):
    for k, v in kwargs.items():
        fruits[k] = fruits.get(k, 0) + v

fruits = {}

check_buy(apple=1, orange=2, pineapple=3)
check_buy(apple=10, orange=7, pineapple=30)
check_buy(peach=21)

print(fruits)
ВИДЕО:
Синтаксис