Курс 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. Функция enumerate в Python
  2. Автоматизация действий с Pyautogui
  3. Модуль inspect
  4. Избегание изменяемых аргументов
  5. Настройка вывода в Numpy
  6. Функция eval() в Python
  7. Декораторы в Python
  8. JMESPath в Python
  9. Значения по умолчанию в Python
  10. Определение размера папок в Python
  11. Регистрация на хакатоне
  12. Форматирование строк в Python
  13. Модуль antigravity: генерация координат
  14. Работа с файлами в Python
  15. Управление пакетами с pip
  16. Удаление ключа из словаря
  17. Добавление элементов в список: append() vs extend()
  18. Каналы Senior: Python, Java, Frontend, SQL, C++
  19. Капитализация строк
  20. Работа с байтовыми строками в Python
  21. Взаимодействие с внешними процессами в Python
  22. Декоратор для группы пользователей в Django
  23. Функции в одну строку
  24. Преобразование в float
  25. Декоратор Ajax required
  26. IPython и Jupyter Notebook: руководство
  27. Официальный канал Python в Telegram
  28. Работа с модулем os в Python
  29. Поиск с помощью регулярных выражений
  30. Экспорт функций в Python
  31. Конкатенация строк с join() в Python
  32. Запуск асинхронной корутины
  33. Python Метод Union Множеств
  34. Работа с пользовательским вводом
  35. Условные выражения в Python
  36. Метод setitem в Python
  37. Проверка класса объекта
  38. Функции-генераторы в Python
  39. Измерение времени выполнения в Python
  40. Функция sleep() в Python
  41. Python-dateutil — работа с датами
  42. Применение команды break
  43. Преобразование генераторов в циклы
  44. Использование модуля math
  45. Атрибуты объекта в Python

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