Курс 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. Извлечение данных из JSON
  2. Объединение множеств в Python
  3. Удаление специальных символов
  4. Обработка ошибок в Python
  5. Определение объема памяти объекта
  6. Хеши в Python
  7. Перезапуск ячейки в Jupyter Notebook с dostoevsky
  8. Сортировка элементов в Python
  9. Сериализация данных в JSON с помощью json.dumps
  10. Проверка ввода с помощью isdigit
  11. Функция zip() в Python
  12. Метод matmul для умножения матриц
  13. Метод ifloordiv для пользовательских классов
  14. Применение функции к элементам списка
  15. Частичное совпадение пользовательского ввода в Python 3.10
  16. Проверка памяти объекта
  17. Вложенные циклы в Python
  18. Необязательные аргументы в Python
  19. Метод repr() в Python
  20. Импорт с альтернативным именем
  21. Настройка Cron
  22. Сортировка в Python
  23. Хешируемые ключи в Python
  24. Типы возвращаемых значений в Python
  25. Метод сравнения объектов в Python
  26. Работа с прокси в Python
  27. Python Ellipsis использование
  28. Создание файла с проверкой ошибки
  29. Работа с collections в Python
  30. Возврат нескольких значений из функции
  31. Генераторы в Python
  32. Метод pop() списка
  33. Поиск элементов BeautifulSoup
  34. Многопоточность и асинхронное программирование в Python
  35. Проверка окончания строки с помощью str.endswith()
  36. Парсинг статей с Newspaper3k
  37. Декоратор @override
  38. Метод join() для объединения элементов
  39. Отображение HTML кода в Python
  40. F-строки в Python 3.8
  41. JSON-esque в Python
  42. Тайное преобразование типа ключа

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