Курс 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. Обработка исключений в Python
  3. Методы работы со строками в Python
  4. Явный импорт переменных
  5. Работа с набором данных CIFAR10 в PyTorch
  6. Реализация операции -= для пользовательского класса
  7. Лямбда-функции в Python
  8. Оптимизация интернирования строк
  9. Работа с географическими данными.
  10. Обработка элементов в Python
  11. globals и locals
  12. Установка максимального количества цифр
  13. Импорт модулей в Python 3.12
  14. Объединение словарей в Python
  15. Мощь вложенных функций в Python
  16. Создание новой даты в Python
  17. Подробная информация о %pinfo
  18. Проверка версии Python
  19. Отслеживание выполнения программы с библиотекой tqdm
  20. Конкатенация строк в Python
  21. Работа с кортежами
  22. Установка и обучение ChatterBot
  23. Основы работы с os
  24. Ускорение выполнения кода в Python
  25. Шаблоны Flask: условия и циклы
  26. Управление экспортом элементов
  27. Оптимизация гиперпараметров в Python
  28. Мониторинг памяти с Pympler
  29. Показ всплывающих окон Tkinter
  30. Работа с датой и временем в Python
  31. Замена текста с re.sub()
  32. Группы исключений в Python
  33. Проверка подстроки в строке с помощью in
  34. Поиск подстроки в строке
  35. Проверка класса объекта
  36. Избегание циклических зависимостей классов в Python
  37. Оператор is в Python
  38. Удаление символа из строки
  39. Установка и использование Virtualenv
  40. Конструктор в Python
  41. Замеры производительности в Python
  42. Передача неизвестных аргументов в Python.
  43. Метод get() для словарей
  44. Функции any() и all() в Python
  45. Декораторы с @wraps
  46. Работа с итераторами через срезы

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