В Python есть возможность передавать переменное количество аргументов в функцию. Это можно сделать с помощью специальных синтаксических конструкций: *args
и **kwargs
.
*args
и **kwargs
— это способы передачи переменного количества аргументов в функцию. Слова args и kwargs — это просто соглашение, их можно заменить на любые другие названия. Важными здесь являются звездочки (*
и **
), которые указывают на способ передачи аргументов.
*args
Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.
*args
используется для передачи неопределенного числа неименованных аргументов. Если поставить звездочку перед именем, это имя будет представлять собой кортеж из всех переданных аргументов функции.
def function(*args): for i in args: print(i) function(1, 2, 3, 4)
В приведенном выше примере, args
— это кортеж (1, 2, 3, 4)
.
**kwargs
**kwargs
работает так же, как и *args
, но вместо кортежа используется словарь. Это позволяет функции принимать любое количество именованных аргументов.
def function(**kwargs): for name, value in kwargs.items(): print(f'{name} = {value}') function(a=1, b=2, c=3)
В этом примере, kwargs
— это словарь {'a': 1, 'b': 2, 'c': 3}
.
Вариативность параметров
Способность функции принимать переменное количество аргументов делает ее более универсальной и гибкой. Это может быть полезно, например, когда нужно написать функцию, которая может работать с любым числом элементов.
Например, функция для подсчета суммы любого количества чисел может выглядеть так:
def sum(*args): result = 0 for i in args: result += i return result
На курсе Skypro «Python-разработчик» освоите основные инструменты программирования, получите опыт на реальных проектах и сможете стартовать в профессии уверенным новичком. Преподаватели — практикующие программисты с большим опытом, а в центре карьеры помогут составить цепляющее резюме и подготовиться к собеседованию.
Заключение
Умение использовать *args
и **kwargs
расширяет возможности работы с функциями в Python, делая их более гибкими и универсальными.
Добавить комментарий