| Функции обратного вызова |
|
Концепция функций обратного вызова и передачи функций в виде параметров может оказаться вам незнакомой. Если это так, то вам определенно стоит углубиться в ее изучение, чтобы понять ее достаточно хорошо для применения на практике или, по крайней мере, настолько, чтобы понимать, что происходит в сценарии, когда вы будете встречать ее. В языке Python функции являются «обычными» объектами, то есть вы можете передавать их и обращаться с ними как с объектами, потому что они действительно являются объектами. Рассмотрим пример 1. Пример 1. Функции - типичные объекты
Простое обращение к функции, такой как foo из предыдущего примера, не приводит к ее вызову. Ссылаясь на имя функции, можно получать значения любых атрибутов функции, которые она имеет, и даже обращаться к функции по другому имени, как показано в примере 2. Пример 2. Обращение к функции по имени
Здесь была создана новая функция foo, так чтобы она содержала строку документирования. После этого мы заявили, что переменная ьar будет указывать на только что созданную функцию foo. В языке Python то, что вы привыкли считать переменными, в действительности является просто именами, указывающими (или ссылающимися) на некоторые объекты. Процесс присваивания имени объекту называется «связыванием имени». Поэтому, когда мы создали функцию foo, на самом деле мы создали объект функции, а затем связали его с именем foo. Воспользовавшись интерактивной оболочкой IPython, чтобы получить основную информацию об имени foo, мы получили сообщение о том, что это функция foo. Интересно то, что оболочка сказала то же самое и об имени ьar, а именно, что это функция foo. Мы установили значение атрибута функции foo и сумели обратиться к нему с помощью имени bar. А вызов по именам foo и ьar дал одинаковые результаты. Передача функций в качестве параметров, обеспечивает высокий динамизм во время выполнения и гибкость во время разработки и может даже расширять возможности повторной используемости программного кода. Даже если вы полагаете, что вам никогда не придется использовать функции обратного вызова, сама перестройка процесса мышления при добавлении этих знаний к вашему мыслительному арсеналу представляет большую ценность.
Related Articles
Set as favorite
Bookmark
Email This
Hits: 223 Комментарии (0)RSS feed CommentsНаписать комментарий |