Главная страница » Python » 37. Функции с переменным числом параметров
Добро пожаловать на тридцать седьмой урок по Python! В этом уроке мы обсудим, как создавать функции, которые могут принимать переменное количество параметров. Это позволяет создавать более гибкие функции, которые могут обрабатывать разное количество аргументов в зависимости от ситуации.
В Python можно создавать функции, которые принимают переменное количество позиционных аргументов с помощью *args
. Это позволяет функции принимать любое количество аргументов, и все они будут доступны как кортеж внутри функции.
*args
def print_args(*args):
for arg in args:
print(arg)
print_args(1, 2, 3) # Вывод: 1 \n 2 \n 3
print_args('a', 'b', 'c') # Вывод: a \n b \n c
В этом примере функция print_args
принимает любое количество позиционных аргументов и выводит их по одному.
Также можно создать функцию, которая принимает переменное количество ключевых аргументов с помощью **kwargs
. Эти аргументы будут собраны в словарь, где ключами будут имена параметров, а значениями — переданные аргументы.
**kwargs
def print_kwargs(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_kwargs(name="Alice", age=30) # Вывод: name: Alice \n age: 30
print_kwargs(city="New York", country="USA") # Вывод: city: New York \n country: USA
В этом примере функция print_kwargs
принимает любое количество ключевых аргументов и выводит их в формате ключ: значение
.
*args
и **kwargs
Функции могут использовать и *args
, и **kwargs
одновременно. Порядок их использования в определении функции должен быть таким: сначала *args
, затем **kwargs
.
Пример комбинации *args
и **kwargs
def print_all_args(*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(1, 2, 3, name="Alice", age=30)
# Вывод:
# Positional arguments:
# 1
# 2
# 3
#
# Keyword arguments:
# name: Alice
# age: 30
В этом примере функция print_all_args
обрабатывает как позиционные, так и ключевые аргументы и выводит их по категориям.
В Python вы можете использовать аннотации типов даже для функций с переменным числом параметров, чтобы указать ожидаемые типы аргументов.
Пример аннотаций типов с *args
и **kwargs
from typing import Any, Dict, Tuple
def process_data(*args: int, **kwargs: Any) -> None:
print("Positional arguments:")
print(args)
print("\nKeyword arguments:")
print(kwargs)
process_data(1, 2, 3, name="Alice", age=30)
# Вывод:
# Positional arguments:
# (1, 2, 3)
#
# Keyword arguments:
# {'name': 'Alice', 'age': 30}
Здесь *args
аннотирован как int
, а **kwargs
— как Any
, что означает, что аргументы могут иметь любые типы.
Сегодня вы узнали, как создавать функции с переменным числом параметров с помощью *args
и **kwargs
. Эти возможности позволяют вам писать более гибкий и универсальный код, который может обрабатывать различные наборы аргументов.
Наша цель и главная задача сделать качественное образование в вашем браузере
Телефон: +375 33 910-08-92
Email: info@codefor.tech
Адрес: г. Барановичи, ул. Пирогова, д. 7
© 2024 Все права защищены. CodeFor.