Шаг 34.
Python: тонкости программирования. Эффективные функции. Функции Python - это объекты первого класса. Функции могут храниться в структурах данных

    На этом шаге мы рассмотрим особенности организации такого хранения.

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

>>> funcs = [bark, str.lower, str.capitalize]
>>> funcs
[<function yell at 0x0000024F7F60DDC0>, 
<method 'lower' of 'str' objects>, 
<method 'capitalize' of 'str' objects>]

    Доступ к объектам-функциям, хранящимся внутри списка, осуществляется точно так же, как это происходит с объектом любого другого типа:

>>> for f in funcs:
	print(f, f('всем привет'))

<function yell at 0x0000024F7F60DDC0> ВСЕМ ПРИВЕТ!
<method 'lower' of 'str' objects> всем привет
<method 'capitalize' of 'str' objects> Всем привет

    Хранящийся в списке объект-функцию даже можно вызвать без необходимости сначала присваивать его переменной. Для этого можно выполнить поиск и затем немедленно назвать результирующий "бестелесный" объект-функцию внутри одного-единственного выражения:

>>> funcs[0]('приветище')
'ПРИВЕТИЩЕ!

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




Предыдущий шаг Содержание Следующий шаг