Курс Python → Распаковка аргументов в Python

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

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


def my_function(arg1, arg2):
    print(arg1, arg2)

args = (1, 2)
my_function(*args)

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


def my_function(arg1, arg2):
    print(arg1, arg2)

kwargs = {'arg1': 1, 'arg2': 2}
my_function(**kwargs)

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

Таким образом, использование * и ** для распаковки аргументов функций является важным инструментом в разработке на Python, который помогает улучшить читаемость и эффективность кода, а также облегчает передачу аргументов функциям с различными требованиями к формату.

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

Автор урока

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

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

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

  1. Работа с итераторами через срезы
  2. Замыкания в Python
  3. Python Метод sleep() из time
  4. Работа со словарями с defaultdict из collections
  5. Регистрация на хакатоне
  6. Оптимизация памяти с slots
  7. Преобразование данных в Python
  8. Оператор zip в Python
  9. Методы classmethod и staticmethod
  10. Установка и использование howdoi
  11. Создание и удаление объектов
  12. Сортировка и обратный порядок
  13. Модуль xkcd: загрузка комиксов
  14. Функция zip() в Python
  15. Использование type hints
  16. Подсчет частотности элементов в Python
  17. Оператор walrus в Python
  18. Циклы в Python
  19. Создание матрицы в Python
  20. Извлечение аудио из видео
  21. Установка и использование Virtualenv
  22. Проверка типа объекта в Python
  23. Удаление и повторная вставка ключа в OrderedDict
  24. Сортировка элементов с OrderedDict
  25. %pinfo: получение информации об объекте
  26. Ускорение выполнения кода в Python
  27. Основные методы NumPy
  28. Итераторы с потерямиZIP
  29. Атрибуты класса и экземпляра в Python
  30. Создание виртуальной среды
  31. Автоматизация с Python
  32. Отношения подклассов в Python
  33. Создание GUI на Tkinter
  34. Необязательные аргументы в Python
  35. Работа с OpenCV
  36. Создание виртуальной среды
  37. Установка и использование Telegram API в Python
  38. Пустой оператор pass в Python
  39. Проверка вхождения подстроки
  40. Отладка кода
  41. Создание пар из последовательностей
  42. ChainMap избыточные ключи
  43. Создание Telegram-бота на Python
  44. Метод ior для битовых операций
  45. Распаковка аргументов в Python
  46. Перегрузка операторов в Python
  47. Тестирование функции сложения
  48. Подчеркивание в REPL

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