Как использовать переменные и аргументы ключевых слов в Python

10
технологии 2.webp

Последнее обновление 12.01.2023 — Василий Иванов

Существует три типа аргументов, которые может принимать функция Python: стандартные, переменные (*args) и ключевые слова (**kwargs). Стандартные аргументы являются самыми простыми, но имеют ограниченную функциональность. С другой стороны, *args и **kwargs позволяют сделать ваши функции более гибкими, принимая переменное количество входных данных.

Тип передачи аргументов, который вы выбираете, зависит от характера вашей функции и вашего предпочтительного стиля программирования.

Основные функции в Python

Чтобы понять, как работают два переменных аргумента в функциях Python, необходимо в первую очередь понять, почему они существуют. Простая функция объявляет фиксированное количество анонимных аргументов, например:

def addnum(a, b, c):
return a + b + c

Эта функция работает отлично, но есть возможности для улучшения. Самая большая проблема заключается в том, что он обрабатывает только два аргумента, поэтому он может сложить только два числа. Что делать, если вы хотите добавить два или четыре числа? Эта функция не позволит вам сделать это. Передача большего или меньшего количества аргументов, чем принимает функция, приведет к ошибке TypeError.

По теме:  Обновление Windows зависло на 100%? Вот 6 исправлений

Конечно, вы можете создать больше функций, которые будут принимать различное количество аргументов. Но это неудобно и вообще плохо масштабируется. Вам также нужно будет создавать новую функцию каждый раз, когда вы хотите обработать новое количество входных данных.

Вот тут-то и появляются переменные аргументы и аргументы с ключевыми словами. Используя *args и **kwargs, вы можете определить гибкие функции, которые могут принимать переменное количество входных данных.

Что такое *args в Python?

Основная идея *args в Python состоит в том, чтобы позволить вам передавать переменное количество входных данных в вашу функцию. Это удобно в различных приложениях. Например, подумайте о программе-калькуляторе, в которой вы хотите дать пользователю возможность складывать два или более чисел и возвращать сумму.

Обратите внимание, что args — это просто имя переменной; это * важно. Вы можете использовать любое допустимое имя для аргумента переменной, если вы включаете расширение *.

Как использовать *аргументы

Вы можете изменить функцию addnum, чтобы она принимала переменное количество входных данных следующим образом:

def addnum(*args):
total = 0

for num in args:
total = total + num

return total

Фрагмент кода выше использует цикл for для перебора предоставленных входных данных.

Затем вы можете вызвать функцию addnum с переменными аргументами, и она будет работать без ошибок:

print(addnum(10, 1, 12, 12, 4, 54, 5)) ## returns 98
print(addnum(14, 54, 5)) # returns 73
print(addnum(10, 5)) # returns 15

Что такое **kwargs в Python?

Хотя и *args, и **kwargs позволяют нам передавать переменное количество входных данных функциям, последний специфичен для аргументов ключевого слова. Если вы не знаете, аргументы с ключевыми словами — это просто причудливые имена для аргументов с именем.

Еще одна уникальная особенность **kwargs заключается в том, что Python представляет значение как словарь.

Как использовать **kwargs

Как и *args, двойная звездочка является важным битом; вы можете использовать любое слово в качестве имени параметра. Вот пример использования **kwargs в Python:

def weekly_attendance(**weekdays):
total_attendees = 0

for attendees in weekdays.values():
total_attendees = total_attendees + attendees

return total_attendees

print(weekly_attendance(monday = 265, tuesday = 698, wednesday = 365, thursday = 463, friday = 234)) # returns 2025
print(weekly_attendance(monday = 265, friday = 234)) # returns 499
print(weekly_attendance(wednesday = 365, thursday = 463, friday = 234)) # returns 1062

Фрагмент кода выше также использует цикл for, но на этот раз со встроенным в Python методом values(). Этот метод возвращает объект представления всех значений в словаре. Метод values() позволяет без проблем просматривать словарь Python.

Используйте переменные аргументы, чтобы сделать ваши функции Python гибкими

Аргументы функций удобны, но некоторым функциям может быть полезно принимать переменное количество аргументов. Аргументы с именованными ключевыми словами могут сделать ваш код более читабельным и простым в использовании. Вы должны использовать аргументы Python *args и **kwargs. Они довольно просты в использовании, и с их помощью вы можете сделать свои функции и программы более гибкими.

Мы надеемся, что, выполнив приведенные выше шаги и фрагменты кода, вы теперь сможете использовать переменные ключевые слова и аргументы, не являющиеся ключевыми словами, для своих функций.