Курс 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. Объединение словарей в Python
  3. Основные методы NumPy
  4. Функции-генераторы в Python
  5. Порядок операций в Python
  6. Инициализация переменных
  7. Объединение словарей в Python
  8. Объединение кортежей в Python
  9. Обмен данными с asyncio.Queue
  10. Работа с переменными в Python
  11. Ошибка NotImplemented в Python
  12. Python Enumerate
  13. Форматирование данных с pprint
  14. Объединение списков с использованием itertools.chain
  15. Конвертация коллекций в Python
  16. Преобразование типов данных в set comprehension
  17. Принципы SRP и OCP
  18. Автоматизация с Python
  19. Преобразование регистра символов
  20. Dict Comprehension в Python
  21. Переворот списка в Python
  22. Хешируемые ключи в Python
  23. Работа со словарями
  24. Метод pos в Python
  25. Сохранение Unicode в JSON
  26. Progress с библиотекой tqdm
  27. Порядок и длина множеств в Python
  28. Лямбда-функции в Python
  29. Переопределение метода len
  30. Генератор списка с условием if
  31. Solidity для DeFi Ethereum
  32. Преобразование в float
  33. Оптимизация памяти с __slots__
  34. Объединение множеств в Python
  35. Обработка исключения UnboundLocalError
  36. Python: отличительная особенность — отступы
  37. Перезагрузка оператора в Python
  38. Метод join() с набором
  39. Enum в Python
  40. Метод bool() в Python
  41. Метод enumerate() в Python
  42. Форматирование строк в Python
  43. Просмотр внешних файлов в %pycat
  44. Расчет времени выполнения
  45. Группировка элементов в словарь
  46. Аннотации типов в Python

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