Курс Python → *args и **kwargs в Python

Параметры *args и **kwargs в определении функции являются мощным инструментом, который позволяет писать более гибкий и универсальный код. Параметр *args позволяет функции принимать любое количество позиционных аргументов, что делает ее более адаптивной к различным сценариям использования. Например, если у нас есть функция, которая складывает все переданные аргументы, мы можем использовать *args для передачи любого количества чисел:


def sum_all(*args):
    total = 0
    for num in args:
        total += num
    return total

print(sum_all(1, 2, 3, 4, 5))  # Выведет 15

Параметр **kwargs, с другой стороны, позволяет функции принимать любое количество именованных аргументов в виде словаря. Это особенно удобно, когда у нас есть функция с большим количеством параметров, и мы хотим передавать их в более удобной форме. Например, мы можем использовать **kwargs для передачи именованных параметров в функцию, которая выводит информацию о пользователе:


def print_user_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

print_user_info(name="Alice", age=30, city="New York")
# Выведет:
# name: Alice
# age: 30
# city: New York

Комбинируя *args и **kwargs, можно создавать функции, способные принимать любое количество и любого типа аргументов. Например, мы можем создать функцию, которая принимает как позиционные, так и именованные аргументы одновременно:


def example_func(*args, **kwargs):
    for arg in args:
        print(f"Positional arg: {arg}")
    for key, value in kwargs.items():
        print(f"Keyword arg - {key}: {value}")

example_func(1, 2, 3, name="Bob", age=25)
# Выведет:
# Positional arg: 1
# Positional arg: 2
# Positional arg: 3
# Keyword arg - name: Bob
# Keyword arg - age: 25

Использование *args и **kwargs делает код более читаемым, гибким и позволяет уменьшить количество повторяющегося кода. Они позволяют улучшить структуру функций, делая их более универсальными и легкими в поддержке. Поэтому знание и умение использовать *args и **kwargs является важным навыком для любого разработчика Python.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Python Calendar Usage
  2. Атрибуты массивов в Numpy
  3. Отправка HTTP-запросов в Python
  4. Измерение времени выполнения кода с помощью time
  5. Функция print() — вывод информации
  6. Модуль inspect
  7. Применение функции map() в Python
  8. Установка и использование модуля Wikipedia
  9. Удаление элементов во время итерации
  10. Создание словаря и множества
  11. Регулярные выражения: метод match
  12. Распаковка с оператором *
  13. Объединение множеств в Python
  14. Методы list в Python
  15. Метод rsub в Python: расширение функциональности вычитания
  16. Получение пути к текущему скрипту с помощью os
  17. Получение текущей директории
  18. Экспорт функций в Python
  19. Исправление ошибки NameError
  20. Генераторы в Python
  21. Обработка ошибок в JSON данных
  22. Получение локальных переменных в Python
  23. Оператор @ для умножения матриц
  24. Библиотека Rich: форматирование текста
  25. ChainMap избыточные ключи
  26. Взаимодействие с sys
  27. Создание вкладок с TKinter
  28. Python: библиотеки и функции
  29. Установка Python — Простое руководство
  30. Отладка в командной строке
  31. Фильтрация списка от «ложных» значений
  32. Установка и использование pyshorteners
  33. Работа с утверждениями в Python
  34. Flask — веб-фреймворк Python
  35. Python 3.12: Псевдонимы типов
  36. Переворот списка в Python
  37. capitalize() — изменение регистра первого символа строки
  38. Рациональные числа в Python
  39. Работа с файлами в Python
  40. Создание копии списка в Python
  41. Векторизация в Python с NumPy.
  42. Метод classmethod
  43. Создание словаря в Python
  44. Поиск с библиотекой Google
  45. Удаление элементов из списка в Python.
  46. Colorama: окрашивание текста в Python

Marketello читают маркетологи из крутых компаний