Аргументы функций в Python
В программировании аргумент — это значение, которое принимает функция.
Прежде чем изучать аргументы функций, убедитесь, что знакомы с Функции в Python.
Пример 1: Аргументы функции в Python
def add_numbers(a, b):
sum = a + b
print('Sum:', sum)
add_numbers(2, 3)
# Вывод: Sum: 5
В приведённом примере функция add_numbers() принимает два параметра: a и b. Обратите внимание на строку:
add_numbers(2, 3)
Здесь вызов add_numbers(2, 3) указывает, что параметры a и b получат значения 2 и 3 соответственно.
Аргументы функции со значениями по умолчанию
В Python мы можем задавать аргументам функции значения по умолчанию.
Для задания значений по умолчанию используется оператор =. Например,
def add_numbers( a = 7, b = 8):
sum = a + b
print('Sum:', sum)
# вызов функции с двумя аргументами
add_numbers(2, 3)
# вызов функции с одним аргументом
add_numbers(a = 2)
# вызов функции без аргументов
add_numbers()
Вывод
Sum: 5
Sum: 10
Sum: 15
В приведённом примере обратите внимание на определение функции:
def add_numbers(a = 7, b = 8):
...
Здесь мы задали значения по умолчанию 7 и 8 для параметров a и b соответственно. Вот как работает эта программа:
1. add_numbers(2, 3)
При вызове функции переданы оба значения. Поэтому используются эти значения вместо значений по умолчанию.
2. add_numbers(2)
При вызове передано только одно значение. Согласно правилу позиционных аргументов, 2 присваивается параметру a, а для параметра b используется значение по умолчанию.
3. add_numbers()
При вызове функции значения не передаются. Поэтому для обоих параметров a и b используются значения по умолчанию.
Ключевые аргументы в Python
В случае ключевых аргументов значения присваиваются по имени аргумента. Например,
def display_info(first_name, last_name):
print('First Name:', first_name)
print('Last Name:', last_name)
display_info(last_name = 'Cartman', first_name = 'Eric')
Вывод
First Name: Eric
Last Name: Cartman
Обратите внимание на вызов функции:
display_info(last_name = 'Cartman', first_name = 'Eric')
Здесь мы присвоили аргументам имена при вызове функции.
Поэтому first_name в вызове сопоставляется с first_name в определении функции. Аналогично last_name сопоставляется с last_name.
В таких случаях порядок аргументов не имеет значения.
Функция Python с произвольным числом аргументов
Иногда мы заранее не знаем, сколько аргументов будет передано функции. Для таких случаев можно использовать произвольные аргументы.
Произвольные аргументы позволяют передавать переменное число значений при вызове функции.
Для обозначения такого аргумента перед именем параметра ставится звёздочка (*). Например,
# программа для нахождения суммы нескольких чисел
def find_sum(*numbers):
result = 0
for num in numbers:
result = result + num
print("Sum = ", result)
# вызов функции с 3 аргументами
find_sum(1, 2, 3)
# вызов функции с 2 аргументами
find_sum(4, 9)
Вывод
Sum = 6
Sum = 13
В приведённом примере мы создали функцию find_sum(), принимающую произвольные аргументы. Обратите внимание на строки:
find_sum(1, 2, 3)
find_sum(4, 9)
Здесь мы можем вызывать одну и ту же функцию с разными аргументами.
Примечание
После получения нескольких значений numbers ведёт себя как массив, поэтому для доступа к каждому значению можно использовать цикл for.