Что такое 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