Курс 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. Форматирование объектов с модулем pprint
  3. Работа с временем в Python
  4. Отображение HTML кода в Python
  5. Перезапуск ячейки в Jupyter Notebook с dostoevsky
  6. Очистка данных с Pandas
  7. Разность множеств
  8. Описание скриптов в README
  9. Атрибуты класса и экземпляра
  10. Принцип одной функции
  11. Глобальные переменные в Python
  12. Логирование в Python
  13. Путь к интерпретатору Python
  14. Список импортированных модулей в Python
  15. Блок else в циклах Python
  16. Numpy: разбиение массивов
  17. Контроль точности вывода чисел
  18. Хеши в Python
  19. Основы работы с os
  20. Считывание бинарного файла в Python
  21. Объединение списков с использованием itertools.chain
  22. Работа с NumPy.linalg
  23. Блок else в циклах.
  24. Функции в одну строку
  25. Метод clear для коллекций
  26. F-строки в Python 3.8
  27. Python enumerate() использование
  28. Операторы увеличения и уменьшения переменной
  29. Преобразование чисел в восьмеричную строку
  30. Оператор «is not» в Python
  31. Операция += для списков
  32. Конкатенация строк в Python
  33. Метод join() для объединения строк
  34. Структурирование именованных констант
  35. Проверка класса объекта
  36. Лямбда-функции в Python
  37. Аргументы *args и **kwargs
  38. Объединение кортежей в Python
  39. Печать календаря
  40. Python Translator: создание локальных переводчиков
  41. Имена объектов в Python
  42. enumerate() в Python для работы с индексами
  43. Генераторные функции в Python
  44. Логирование с Logzero: ротация файла
  45. Сравнение строк в Python
  46. Руководство по библиотеке pydantic

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