Курс 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. Удаление элемента по индексу
  3. Регистрация на TenChat
  4. Возврат нескольких значений
  5. Тестирование функции сложения
  6. Метод __iand__ для пользовательских классов
  7. Проверка надежности пароля на Python
  8. Работа со словарями Python
  9. Преобразование списка в словарь через генератор
  10. Управление браузером с Selenium
  11. enumerate() в Python для работы с индексами
  12. Получение размера объекта с sys.getsizeof()
  13. Тайное преобразование типа ключа
  14. Импорт в Python: список all
  15. Получение ID текущего процесса
  16. Создание задания в Cron
  17. Измерение времени выполнения кода
  18. Профилирование данных с Pandas.
  19. Подсчет часто встречающихся элементов
  20. Сравнение строк в Python
  21. Отношения подклассов в Python
  22. Проверка условий в Python
  23. Функции с необязательными аргументами
  24. Принципы программирования
  25. Очистка списка от False, None, 0, «»
  26. Работа с библиотекой requests
  27. Оператор in в Python
  28. Группировка элементов Python
  29. Многоточие в Python
  30. discard() — удаление элемента из множества
  31. Проверка условий: all и any
  32. Использование функции enumerate()
  33. Mad Libs Generator
  34. Оптимизация создания строк
  35. Метод __call__ в Python
  36. Переопределение метода __lshift__
  37. Оператор == в Python
  38. Удаление элемента по индексу в Python
  39. Создание и операции с дробями
  40. Сравнение def и lambda функций в Python
  41. Методы работы со строками в Python
  42. Участие в LP стейкинге Waves
  43. Запуск внешнего кода в Jupyter
  44. Модуль xkcd: добавление юмора в Python
  45. Импорт модулей и пакетов в Python

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