Это функциональный декоратор? - PullRequest
0 голосов
/ 16 марта 2011

Я только начал играть с pyglet.

В первом демо я набрал код, подобный следующему:

window = pyglet.window.Window()

@window.event
def on_draw():
    window.clear()
    label.draw()

Я понимаю, что это регистрирует обработчик событий, но я не понимаю, как.

Как это можно переписать без синтаксиса '@'?

Ответы [ 2 ]

3 голосов
/ 16 марта 2011

Это называется «декоратором событий».Да, вы можете просто написать

window.on_draw = on_draw

после определения def on_draw (), без использования декоратора;но тогда, если окно уже имеет on_draw, оно будет перезаписано.Декоратор объединит несколько обработчиков событий.

0 голосов
/ 16 марта 2011

Согласно документам , Window.event является декоратором. Декораторы могут быть просто добавлены с помощью @.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...