Module (12%)
Section (13%)

Параметризованные функции

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

Параметр на самом деле является переменной, но есть два важных фактора, которые делают параметры разными и особенными:

  • параметры существуют только внутри функций, в которых они были определены, и единственное место, где можно определить параметр, - это пространство между парой круглых скобок в выражении def;
  • присвоение значения параметру выполняется во время вызова функции путем указания соответствующего аргумента.
def function(parameter): ###

Не забудьте:

  • параметры находятся внутри функций (это их естественная среда обитания)
  • аргументы существуют вне функций и являются носителями значений, передаваемых в соответствующие параметры.

Между этими двумя мирами существует четкая и недвусмысленная граница.


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



Нам нужно переделать выражение def - вот как оно выглядит сейчас:

def message(number): ###

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

Теперь давайте перепишем тело функции:

def message(number): print("Enter a number:", number)

Мы использовали параметр. Примечание: мы не присвоили параметру какое-либо значение. Верно?

Да.

Значение параметра будет поступать из среды функции.

Помните: указание одного или нескольких параметров в определении функции также является требованием, и Вы должны выполнить его во время вызова. Вы должны указать столько аргументов, сколько задано параметров.

В противном случае возникнет ошибка.