Курс 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. Манипуляция формой массива в Numpy
  2. Преобразование строк в числа в Python
  3. Модуль pprint
  4. Форматирование вывода списков
  5. Основные операции с библиотекой Numpy
  6. Списки в Python: синтаксис представления
  7. Переопределение метода divmod
  8. Множественное назначение в Python
  9. Отладка в Python
  10. Генераторы в Python
  11. Обработка ошибок в Python
  12. Работа с утверждениями в Python
  13. Проверка наличия элемента в списке
  14. Применение функции к списку
  15. Безопасный доступ к значениям словаря
  16. Игра «Виселица» на Python
  17. Работа со строками в Python
  18. Копирование списков в Python
  19. Работа с IP-адресами в Python
  20. Отправка HTTP-запросов в Python
  21. Создание namedtuple списком полей
  22. Работа с процессами в Python
  23. Метод enumerate() в Python
  24. Операции с кортежами
  25. Генераторы списков в Python
  26. Работа с срезами в Python
  27. Создание класса в Python
  28. Python Translator: создание локальных переводчиков
  29. Работа с классами данных
  30. Удаление элементов во время итерации
  31. Работа с кортежами в Python
  32. Принципы LSP и ISP в Python
  33. Отладка производительности Python
  34. Основы работы с базами данных в Python
  35. Метод gt в Python
  36. Метод setdefault() в Python
  37. Тестирование с responses
  38. Просмотр внешних файлов в %pycat
  39. Генераторы в Python
  40. Получение текущего времени в Python
  41. Итераторы в Python
  42. Приоритет операций в Python
  43. Оптимизация поиска в словарях
  44. Оптимизация памяти с slots
  45. Создание пустых функций и классов в Python
  46. Использование эмодзи в Python
  47. Возврат нескольких значений
  48. Метод join() для объединения элементов строки

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