Что такое kwargs

Выражения *args и **kwargs объявляют в сигнатуре функции. Они означают, что внутри функции будут доступны переменные с именами args и kwargs (без звездочек). Можно использовать другие имена, но это считается дурным тоном.

args – это кортеж, который накапливает позиционные аргументы. kwargs – словарь именованных аргументов, где ключ – имя параметра, значение – значение параметра.

Важно: если в функцию не передано никаких параметров, переменные будут соответственно равны пустому кортежу и пустому словарю, а не None.

Пожалуйста, не путайте кортеж со списком.

Oct. 10, 2023, Источник

  • *args и **kwargs — специальный синтаксис, позволяющий передавать в функцию переменное количество аргументов.
  • Использование *args и **kwargs идет на уровне соглашения между разработчиками. По факту эти аргументы можно называть как угодно
  • *args распаковывает не именованные аргументы как картеж, а **kwargs распаковывает именованные как словарь
    def pepa(a, *args, **kwargs):
      print(a)
      for i in args:
        print(f'Я получил арг: {i}')
      for k, w in kwargs.items():
        print(f'Я получил кварг: {k} – {w}')
    
    pepa(1, 2, 3, keks='wew')
    
    # 1
    # Я получил арг: 2
    # Я получил арг: 3
    # Я получил кварг: keks – wew

     

Oct. 10, 2023, Источник

Термин "kwargs" обычно используется для обозначения необязательного параметра функции, который позволяет передавать произвольное количество именованных аргументов в функцию. Он является соглашением об именовании и может быть заменен на любое другое имя, но часто используется именно "kwargs" для означения этого параметра.

Этот термин представляет собой словарь (dictionary) аргументов, переданных в функцию, где ключи словаря представляют собой имена аргументов, а значения - их значения. Поскольку функция может принимать произвольное количество именованных аргументов, он позволяет обрабатывать их динамически.

Пример использования:

def print_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

print_info(name="John", age=30, city="New York")

В этом примере `**kwargs` позволяет функции `print_info` принимать любое количество именованных аргументов, которые будут представлены в виде словаря. Функция затем проходит по всем элементам словаря и выводит их ключи и значения.

Feb. 19, 2024, easyoffer