
Шаг 3. *args и **kwargs
Баллов за прохождение: 1
*args и **kwargs
В Python *args и **kwargs используются для работы с переменным числом аргументов, передаваемых в функцию. Это полезно, когда вы не знаете, сколько аргументов будет передано функции
*args
*args позволяет функции принимать произвольное количество позиционных аргументов.
Если поставить звездочку перед именем, это имя будет представлять собой кортеж из всех переданных аргументов функции.
Пример:
def print_args(*args):
for arg in args:
print(arg)
print_args(1, 2, 3, 'hello', 'world')
В этом примере функция print_args принимает любое количество аргументов и выводит их. Аргументы передаются в виде кортежа args.
**kwargs
**kwargs работает так же, как и *args, но вместо кортежа используется словарь.
Пример:
def print_kwargs(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_kwargs(name='Alice', age=30, city='New York')
В этом примере функция print_kwargs принимает любое количество именованных аргументов и выводит их в виде ключ-значение. Аргументы передаются в виде словаря kwargs.
Комбинация *args и **kwargs
Вы можете использовать *args и **kwargs вместе в одной функции. Важно помнить, что *args должен идти перед **kwargs в списке параметров функции.
def print_all_args_and_kwargs(*args, **kwargs):
print("Positional arguments:")
for arg in args:
print(arg)
print("\nKeyword arguments:")
for key, value in kwargs.items():
print(f"{key}: {value}")
print_all_args_and_kwargs(1, 2, 3, name='Alice', age=30)
В этом примере функция print_all_args_and_kwargs принимает как позиционные, так и именованные аргументы и выводит их по категориям.