Курс 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. Логирование с Logzero
  2. Основные функции и модули Python
  3. Импорт модулей в Python 3.12
  4. Метод __ilshift__ для битового сдвига влево
  5. Транспонирование матрицы в Python
  6. Аннотации типов в Python
  7. Работа со слайсами
  8. Установка и использование Telegram API в Python
  9. Проблема сравнения словарей
  10. Преобразование регистра строк
  11. Многострочные строки в Python
  12. Генераторы в Python
  13. Изменяемые и неизменяемые объекты
  14. Работа с путями в Python
  15. Поиск кода
  16. Нахождение максимального значения и его индекса в списке
  17. Циклы for в Python
  18. Транспонирование 2D-массива с помощью zip
  19. Участие в LP стейкинге Waves
  20. Переменная с нижним подчеркиванием
  21. Combobox в Tkinter
  22. Скачать видео с YouTube
  23. Функциональное программирование в Python
  24. Лямбда-функции в defaultdict
  25. Делегирование в Python
  26. Python: динамическая типизация и проверка типов
  27. Обновление ключей в Python
  28. Создание новых списков в Python
  29. Работа с кортежами
  30. Работа с CSV файлами
  31. Оператор == в Python
  32. Цикл for в Python
  33. Работа с датами в Python
  34. Проверка класса объекта
  35. Основные операции с Numpy
  36. Вложенные генераторы в Python
  37. Настройка Cron
  38. Создание словарей в Python
  39. Генераторы в Python
  40. Основы работы со строками в Python
  41. Функция zip() в Python
  42. Именование переменных в Python
  43. Обработка исключений в Python
  44. Закрытие файла в Python
  45. Разбиение текста в Python

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