Простой Python. современный стиль программирования - читать онлайн бесплатно полную версию книги . Страница 92

на-

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

>>> 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):