Курс 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. Комментарии в Python.
  2. Строковое представление объектов
  3. Транспонирование матрицы
  4. Методы list в Python
  5. Обработка ошибок в JSON данных
  6. Удаление дубликатов с помощью множеств
  7. Выражения-генераторы в Python
  8. Разделение строки на подстроки в Python
  9. Преобразование range в итератор
  10. Цепные операции в Python
  11. Реверс строки в Python
  12. Хеши в Python
  13. Применение функции к списку
  14. Создание обратного итератора
  15. Отправка HTTP-запросов с User-Agent
  16. Оптимизация гиперпараметров в Python
  17. Класс UserDict: дополнительная функциональность
  18. Введение в PyTorch
  19. Метод split() в Python
  20. Фильтрация списка от «ложных» значений
  21. Создание детектора плагиата
  22. Генераторы в Python
  23. Изменение логики работы с временем
  24. Принцип одной функции
  25. Обработка ошибок в Python
  26. Функции all и any в Python
  27. Умножение строк и списков
  28. Отправка поздравлений по дню рождения
  29. Оптимизация памяти с помощью __slots__
  30. Модуль math: константы π и e
  31. Ветвление выражения в Python
  32. Функция zip() в Python
  33. Получение пути к текущему скрипту с помощью os
  34. Объединение итераторов
  35. Добавление Progressbar в Python
  36. Профилирование с Pandas
  37. Подписка на каналы разработчиков
  38. Генераторные выражения и islice.
  39. Переопределение метода divmod
  40. Профилирование данных с Pandas
  41. Присоединение элементов коллекции
  42. Измерение времени выполнения кода с помощью time
  43. Работа с геоданными с помощью geopy
  44. Генераторы в Python
  45. Генераторы данных
  46. Преобразование списков в словарь
  47. Работа с областями видимости переменных
  48. EMOT преобразование эмодзи в текст

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