Часто при разработке на Python возникает необходимость создания функций, которые могут принимать разное количество аргументов или же параметры с определенными именами. Здесь на помощь приходят механизмы *args
и **kwargs
.
Механизм *args
*args
используется для передачи произвольного числа безымянных аргументов. Важно отметить, что args
в данном контексте — это просто переменная, а звездочка (*
) указывает на то, что мы хотим получить кортеж из всех переданных аргументов. Имя args
является общепринятым, но можно использовать любое другое.
Пример функции, принимающей любое количество аргументов:
def func(*args): for arg in args: print(arg) func('Hello', 'world', '!') # Выведет: Hello \n world \n !
Механизм **kwargs
**kwargs
используется для передачи произвольного числа именованных аргументов. Как и в предыдущем случае, kwargs
— это просто переменная, а две звездочки (**
) указывают на то, что мы хотим получить словарь из всех переданных аргументов. Имя kwargs
также является общепринятым, но можно использовать любое другое.
Пример функции, принимающей любое количество именованных аргументов:
def func(**kwargs): for key, value in kwargs.items(): print(f'{key}: {value}') func(name='John', age=25) # Выведет: name: John \n age: 25
Вывод
Использование *args
и **kwargs
позволяет создавать более гибкие функции, способные работать с различными наборами данных.
Добавить комментарий