Курс 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 Enumerate
  2. Оператор «is not» в Python
  3. Переименование файлов в Python
  4. Декоратор защиты анонимных пользователей
  5. Класс Counter() для подсчета элементов
  6. Операции с комплексными числами
  7. Ускорение выполнения кода в Python
  8. Python Ellipsis использование
  9. Форматирование вывода списков
  10. capitalize() — изменение регистра первого символа строки
  11. Работа с модулем Calendar
  12. PATCH-запрос с библиотекой requests
  13. Использование модуля math
  14. Анализ текста на русском языке с помощью Pymystem3
  15. Генераторы в Python
  16. Атрибуты класса и экземпляра
  17. Генераторы в Python
  18. Срез в Python
  19. Python и Монти Пайтон
  20. Работа с CSV в Python
  21. Создание словаря через dict comprehension
  22. Сохранение Unicode в JSON
  23. Поиск всех индексов подстроки
  24. Метод get для словаря
  25. Сложные типы данных в Python
  26. Использование модуля __future__
  27. Избегание изменяемых аргументов
  28. Срезы в Python
  29. Рациональные числа в Python
  30. Слияние словарей в Python 3.9
  31. Отслеживание выполнения программы с библиотекой tqdm
  32. Перебор элементов списка в Python
  33. Особенности запятых в Python
  34. Функция zip() в Python
  35. Логирование с Logzero
  36. Приоритет операций в Python
  37. Поиск элементов BeautifulSoup
  38. Dict Comprehension в Python
  39. Поиск уникальных и повторяющихся элементов
  40. Оператор is в Python
  41. Протокол управления контекстом
  42. Изменение списка срезом
  43. Работа с часовыми поясами в Python.
  44. Многоточие в Python
  45. Оптимизация гиперпараметров в Python
  46. Переопределение метода
  47. Отладка производительности Python

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