Параметризованные функции
Полная мощь функции проявляется, когда она может быть оснащена интерфейсом, способным принимать данные, предоставленные вызывающей стороной. Такие данные могут изменять поведение функции, делая ее более гибкой и адаптируемой к меняющимся условиям.
Параметр на самом деле является переменной, но есть два важных фактора, которые делают параметры разными и особенными:
- параметры существуют только внутри функций, в которых они были определены, и единственное место, где можно определить параметр, - это пространство между парой круглых скобок в выражении
def
; - присвоение значения параметру выполняется во время вызова функции путем указания соответствующего аргумента.
def function(parameter):
###
Не забудьте:
- параметры находятся внутри функций (это их естественная среда обитания)
- аргументы существуют вне функций и являются носителями значений, передаваемых в соответствующие параметры.
Между этими двумя мирами существует четкая и недвусмысленная граница.
Давайте обогатим приведенную выше функцию всего одним параметром - мы собираемся использовать его, чтобы показать пользователю номер значения, запрашиваемого функцией.
Нам нужно переделать выражение def
- вот как оно выглядит сейчас:
def message(number):
###
В определении указано, что наша функция работает только с одним параметром с именем number
. Вы можете использовать его как обычную переменную, но только внутри функции - он больше нигде не виден.
Теперь давайте перепишем тело функции:
def message(number):
print("Enter a number:", number)
Мы использовали параметр. Примечание: мы не присвоили параметру какое-либо значение. Верно?
Да.
Значение параметра будет поступать из среды функции.
Помните: указание одного или нескольких параметров в определении функции также является требованием, и Вы должны выполнить его во время вызова. Вы должны указать столько аргументов, сколько задано параметров.
В противном случае возникнет ошибка.