Параметр — это значение, которое принимает функция. Аргумент — это значение, которое передается в функцию при ее вызове в программе.
Рассмотрим пример использования параметров функции в Python:
1 2 3 4 5 |
def add_numbers(a, b): sum = a + b print('Sum:', sum) add_numbers(2, 3) |
Результат:
Sum: 5
Здесь функция add_numbers() принимает два параметра: a
и b
. Обратите внимание на строку:
1 |
add_numbers(2, 3) |
Данная строка указывает, что параметры a
и b
получат соответствующие значения 2
и 3
.
Параметры со значениями по умолчанию
В Python с помощью оператора =
мы можем указать значения по умолчанию для параметров функции. Например:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
def add_numbers( a = 7, b = 8): sum = a + b print('Sum:', sum) # Вызов функции с 2 аргументами add_numbers(2, 3) # Вызов функции с 1 аргументом add_numbers(a = 2) # Вызов функции без указания аргументов add_numbers() |
Результат:
Sum: 5
Sum: 10
Sum: 15
Обратите внимание на определение функции:
1 2 |
def add_numbers(a = 7, b = 8): ... |
Здесь мы указали значения по умолчанию 7
и 8
для параметров a
и b
соответственно. Вот как работает эта программа
add_number(2, 3)
— при вызове функции передаются оба значения. Следовательно, эти значения используются вместо значений по умолчанию.
add_number(2)
— при вызове функции передается только одно значение. Параметру a
присваивается значение 2, а для параметра b
используется значение по умолчанию.
add_number()
— при вызове функции значения не передаются. Следовательно, для обоих параметров a
и b
используются значения по умолчанию.
Именованные аргументы в Python
Именованные аргументы представляют собой пару «имя-значение», передаваемую функции. Имя и значения связываются с аргументом напрямую, так что при передаче аргумента путаница с порядком исключается. Например:
1 2 3 4 5 |
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
Обратите внимание на вызов функции:
1 |
display_info(last_name = 'Cartman', first_name = 'Eric') |
Здесь мы указали как имена аргументов, так и их значения во время вызова функции.
Следовательно, аргумент first_name
в вызове функции становится параметром first_name
в определении функции. Точно так же аргумент last_name
в вызове функции становится параметром last_name
в определении функции.
В таких сценариях порядок указания аргументов не имеет значения.
Произвольные аргументы в Python
Иногда мы не знаем заранее количество аргументов, которые будут переданы в функцию. Чтобы справиться с подобной ситуацией, мы можем использовать произвольные аргументы в Python.
Произвольные аргументы позволяют передавать различное количество значений во время вызова функции. Для указания данного типа аргументов используется звездочка (*
) перед именем параметра в определении функции. Например:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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(), которая принимает произвольное количество аргументов. Обратите внимание на вызовы функции:
1 2 3 |
find_sum(1, 2, 3) find_sum(4, 9) |
Здесь мы можем вызывать одну и ту же функцию с разным количеством аргументов.
Примечание: После получения нескольких значений, объект numbers
начинает вести себя как массив, поэтому мы можем использовать цикл for для доступа к каждому значению.