... return anything + ' ' + anything
...
>>>
Теперь вызовем функцию echo(), передав ей строку 'Rumplestiltskin':
>>> echo('Rumplestiltskin')
'Rumplestiltskin Rumplestiltskin'
Значения, которые вы передаете в функцию при вызове, называются аргумен-
тами. Когда вы вызываете функцию с аргументами, значения этих аргументов
копируются в соответствующие параметры внутри функций. В предыдущем при-
мере функции echo() передавалась строка 'Rumplestiltskin'. Это значение копиро-
валось внутри функции echo() в параметр anything, а затем возвращалось (в этом
случае оно удваивалось и разделялось пробелом) вызывающей стороне.
Эти примеры функций довольно просты. Напишем функцию, которая прини-
мает аргумент и что-то с ним делает. Мы адаптируем предыдущий фрагмент кода,
который комментировал цвета. Назовем его commentary и сделаем так, чтобы он
120
Глава 4. Корочка Python: структуры кода
принимал в качестве аргумента строку color. Сделаем так, чтобы он возвращал
описание строки вызывающей стороне, которая может решить, что с ним делать
дальше:
>>> def commentary(color):
... if color == 'red':
... return "It's a tomato."
... elif color == "green":
... return "It's a green pepper."
... elif color == 'bee purple':
... return "I don't know what it is, but only bees can see it."
... else:
... return "I've never heard of the color " + color + "."
...
>>>
Вызовем функцию commentary(), передав ей в качестве аргумента строку 'blue'.
>>> comment = commentary('blue')
Функция сделает следующее:
присвоит значение 'blue' параметру функции color;
пройдет по логической цепочке if-elif-else;
вернет строку;
присвоит строку переменной comment.
Что мы получим в результате?
>>> print(comment)
I've never heard of the color blue.
Функция может принимать любое количество аргументов (включая нуль) лю-
бого типа. Она может возвращать любое количество результатов (также включая
нуль) любого типа. Если функция не вызывает return явно, вызывающая сторона
получит результат None.
>>> print(do_nothing())
None
None может быть полезным
None — это специальное значение в Python, которое заполняет собой пустое место,