Module (13%)
Section (25%)

Параметризованиие функции: продолжение

Попробуйте запустить код в редакторе.

Вот что вы увидите в консоли:

TypeError: message() missing 1 required positional argument: 'number'

output


Это наверняка выглядит лучше:

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

Более того, это лучше себя ведет. Код выдаст следующий результат:

Enter a number: 1

output


Видите, как это работает? Значение аргумента, используемого во время вызова (1), было передано в функцию, установив начальное значение параметра с именем number.


Мы должны обратить Ваше внимание на одно важное обстоятельство.

Допустимо и возможно иметь переменную с таким же именем, как у параметра функции.

Код иллюстрирует этот феномен:

def message(number): print("Enter a number:", number) number = 1234 message(1) print(number)

Подобная ситуация активирует механизм, называемый затенением:

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

Параметр с именем number - это не то же самое, что и переменная с именем number.

Это означает, что приведенный выше фрагмент даст следующий вывод:

Enter a number: 1 1234

output


Code

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

message()
{{ dockerServerErrorMsg }} ×
{{ errorMsg }} ×
{{ successMsg }} ×