Курс 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. Метод bool() в Python
  2. Функция enumerate() — Python
  3. Модуль inspect: получение информации о объектах
  4. EMOT преобразование эмодзи в текст
  5. Сортировка и разворот списка
  6. Резервирование символов в Python
  7. Оператор умножения для вектора
  8. Функциональное программирование.
  9. Поиск файлов по шаблону
  10. Python: цикл for и оператор присваивания
  11. Регистрация на TenChat
  12. Метод rmatmul для пользовательских матриц
  13. Моржовый оператор в Python 3.8
  14. Атрибуты объекта в Python
  15. Сортировка в Python
  16. PEP-401: оператор
  17. Метод lt для сортировки объектов
  18. Работа с файлами и директориями в Python.
  19. Оптимизация параметров в Python
  20. Тестирование функции сложения
  21. Переопределение метода
  22. Декораторы в Python
  23. Создание словарей и множеств в Python.
  24. Отношения подклассов в Python
  25. Генераторы списков в Python
  26. Функциональное программирование в Python
  27. Оператор «моржа» (Walrus Operator)
  28. Библиотека Emoji: использование смайлов в Python
  29. Генераторы данных
  30. Создание пользовательской коллекции в Python
  31. Сортировка списка по индексам
  32. Метод matmul для умножения матриц
  33. Работа со стеком в Python
  34. Метод сравнения объектов в Python
  35. Ускорение выполнения кода в Python
  36. Python и Юникод: работа с цифрами
  37. Копирование словарей и списков в Python
  38. Печать календаря
  39. Нахождение хеша для бесконечности и NaN в Python
  40. Модуль os: работа с файлами и папками
  41. Функции all и any в Python
  42. Блок try-except-else
  43. Создание и использование ChainMap
  44. Проектирование Singleton с метаклассом
  45. Списковое включение в Python
  46. Методы сравнения множеств
  47. Порядок и длина множеств в Python
  48. Очистка вывода в Python

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