Курс 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. Модуль Operator в Python
  4. Работа с базами данных SQLite
  5. Передача параметров в Python
  6. Очистка данных с Pandas
  7. Нан-рефлексивность в Python
  8. Блок else в обработке исключений
  9. Декораторы в Python
  10. Извлечение статей с newspaper3k
  11. Поиск с помощью регулярных выражений
  12. Изменение логики работы с временем
  13. Работа с контекстными менеджерами
  14. Решение переменной Шредингера
  15. Оператор assert в Python
  16. Оптимизация параметров в Python
  17. Поиск самого длинного слова в списке с использованием max()
  18. PATCH-запрос с библиотекой requests
  19. Перевернуть список в Python
  20. Форматирование строк в Python
  21. Оператор «or» в Python
  22. Обучение модели с указанием эпох
  23. Глобальные переменные в Python
  24. Создание коллекций из генератора
  25. Строковое представление объектов
  26. Методы и функции в Python
  27. Подписка на @SelectelNews
  28. Создание словарей с defaultdict
  29. Удаление ключа из словаря в Python
  30. Извлечение аудио из видео
  31. Получение текущего времени в Python
  32. Concrete Paths — метод .with_suffix()
  33. Библиотека schedule: планировщик задач
  34. Функция reduce() в Python
  35. Использование двоеточия в Python
  36. Замена символов в Python
  37. Настройка вывода NumPy
  38. Работа с изменяемыми коллекциями
  39. История Python
  40. Управление виртуальными средами в Python
  41. Управление User-Agent в Python
  42. Разделение строки с помощью re.split()
  43. Создание класса очереди
  44. Оформление кода на Python
  45. Работа с буфером обмена на Python

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