Курс 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. Удаление дубликатов с помощью множеств
  2. Измерение времени выполнения
  3. Возврат нескольких значений
  4. Переопределение оператора % для объектов
  5. Выключение компьютера с помощью Python
  6. Определение размера папок в Python
  7. Декоратор проверки активности
  8. IPython и Jupyter Notebook: руководство
  9. Оптимизация интернирования строк
  10. Значения по умолчанию в Python
  11. Секреты Python
  12. ChainMap.new_child() — добавление нового словаря
  13. Выражения-генераторы в Python
  14. Тестирование времени с Freezegun
  15. Повторение элементов списков
  16. Проверка надежности пароля на Python
  17. Удаление дубликатов из списка
  18. Импорт модулей в Python 3.12
  19. Непрерывная проверка в Python
  20. Использование html-скриптов в Jupyter Notebook
  21. Создание вложенных циклов for
  22. Метод eq для сравнения объектов
  23. Профилирование с Pandas
  24. Применение функций в Python
  25. Глобальные переменные в Python
  26. Модуль math: константы π и e
  27. Возведение в квадрат с помощью itertools
  28. Метод splitlines() для разделения строк
  29. Python: отличительная особенность — отступы
  30. Распаковка с оператором *
  31. Создание обратного итератора
  32. Глобальные переменные в Python
  33. Регистрация на хакатоне
  34. Метод __iand__ для пользовательских классов
  35. Определение объема памяти объекта
  36. Многострочные комментарии в Python
  37. Обработка исключений в Python
  38. Операторы присваивания в Python
  39. Абстракции словарей и множеств в Python
  40. Генератор надежных паролей
  41. Генераторы в Python
  42. Перегрузка операторов в Python
  43. Избегайте двойного подчеркивания
  44. Преобразование чисел в Python
  45. Взаимодействие с внешними процессами в Python
  46. Измерение времени выполнения кода

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