Курс 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. Работа с CSV файлами
  2. Поиск с библиотекой Google
  3. UserString в Python
  4. Оператор walrus в Python
  5. Enum в Python
  6. Проверка типа объекта в Python
  7. Перетасовка списков в Python
  8. Работа с файлами в Python
  9. Изучение объектов с помощью dir()
  10. Разбиение строки в Python
  11. Объединение словарей в Python
  12. Исключение NotImplementedError
  13. Отладка утечек памяти в Python
  14. Переопределение метода __rshift__
  15. Руководство по библиотеке pydantic
  16. Мониторинг работы программы Py-spy
  17. Аннотации типов в Python
  18. Использование defaultdict в Python
  19. Визуализация пропусков данных
  20. Переворот последовательности
  21. Генерация случайных чисел Python
  22. Использование html-скриптов в Jupyter Notebook
  23. Оператор is в Python
  24. Генераторы в Python
  25. Комплексные числа в Python
  26. Создание новых списков через list comprehensions
  27. Работа с кортежами в Python
  28. Оператор (*) в Python
  29. Повторение элементов списков
  30. Функция count() в Python
  31. Поиск индекса элемента в списке
  32. Обработка ошибки IndexError
  33. Замыкания в Python
  34. Retrying в Python: повторные вызовы
  35. Преобразование в float
  36. Оператор распаковки в Python
  37. Проверка существования переменной с оператором :=
  38. Разделение списка на гнппы
  39. Запуск внешнего кода в Jupyter
  40. Оптимизация памяти с помощью __slots__
  41. Функции map, filter, reduce
  42. Lambda-функция в Python: использование с map() и sum()
  43. Разработка Telegram-ботов
  44. Ограничение итераций в Python
  45. Python Метод sleep() времени

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