зывается строкой документации:
>>> def echo(anything):
... 'echo returns its input argument'
... return anything
Вы можете сделать строку документации довольно длинной и даже, если хоти-
те, применить к ней форматирование, что показано в следующем примере:
def print_if_true(thing, check):
'''
Prints the first argument if a second argument is true.
The operation is:
126
Глава 4. Корочка Python: структуры кода
1. Check whether the *second* argument is true.
2. If it is, print the *first* argument.
'''
if check:
print(thing)
Для того чтобы вывести строку документации некоторой функции, вам следует
вызвать функцию help(). Передайте ей имя функции, чтобы получить список всех
аргументов и красиво отформатированную строку документации:
>>> help(echo)
Help on function echo in module __main__:
echo(anything)
echo returns its input argument
Если вы хотите увидеть только строку документации без форматирования:
>>> print(echo.__doc__)
echo returns its input argument
Подозрительно выглядящая строка __doc__ является внутренним именем
строки документации как переменной внутри функции. В пункте «Использование
_ и __ в именах» в разделе «Пространства имен и область определения» данной
главы объясняется причина появления всех этих нижних подчеркиваний.
Функции — это объекты первого класса
Я уже упоминал мантру Python: объектами является все, включая числа, строки,
кортежи, списки, словари и даже функции. Функции в Python являются объекта-
ми первого класса. Вы можете присвоить их переменным, использовать как ар-
гументы для других функций и возвращать из функций. Это дает вам возможность
решать с помощью Python такие задачи, справиться с которыми средствами многих
других языков сложно, если не невозможно.
Для того чтобы убедиться в этом, определим простую функцию answer(), кото-
рая не имеет аргументов и просто выводит число 42:
>>> def answer():
... print(42)
Вы знаете, что получите в качестве результата, если запустите эту функцию:
>>> answer()
42
Теперь определим еще одну функцию с именем run_something. Она имеет один
аргумент, который называется func и представляет собой функцию, которую нуж-
но запустить. Эта функция просто вызывает другую функцию:
>>> def run_something(func):