Что такое *args, **kwargs?
*args
и **kwargs
- это специальные параметры функции в Python, которые позволяют обрабатывать переменное количество аргументов.
*args
(аргументы переменной длины):Описание:
*args
используется для передачи переменного количества позиционных аргументов в функцию.args
- это кортеж, который содержит все переданные аргументы, кроме тех, которые были присвоены явно.Пример:
def print_args(*args): for arg in args: print(arg) print_args(1, 2, 3, "four")
**kwargs
(аргументы переменной длины с ключевыми словами):Описание:
**kwargs
используется для передачи переменного количества аргументов с ключевыми словами в функцию.kwargs
- это словарь, который содержит все переданные аргументы с их значениями.Пример:
def print_kwargs(**kwargs): for key, value in kwargs.items(): print(f"{key}: {value}") print_kwargs(name="John", age=30, city="New York")
Комбинированное использование:
Описание: Можно использовать
*args
и**kwargs
вместе для создания функции, которая принимает любое количество позиционных и именованных аргументов.Пример:
def print_all_args(*args, **kwargs): for arg in args: print(arg) for key, value in kwargs.items(): print(f"{key}: {value}") print_all_args(1, 2, name="John", age=30)
Распаковка с использованием *args
и **kwargs
позволяет передавать переменное количество аргументов в функцию. Вот пример:
def example_function(*args, **kwargs):
for arg in args:
print(arg)
for key, value in kwargs.items():
print(f"{key}: {value}")
# Пример использования
values = [1, 2, 3]
options = {"name": "John", "age": 30}
example_function(*values, **options)
В этом примере:
*values
распаковывает элементы из спискаvalues
и передает их как позиционные аргументы в функцию.**options
распаковывает элементы из словаряoptions
и передает их как именованные аргументы (ключи и значения) в функцию.
Таким образом, функция example_function
может принимать любое количество позиционных и именованных аргументов, что делает ее более гибкой для различных сценариев использования.
Last updated
Was this helpful?