这是一个功能装饰器吗?

时间:2011-03-16 04:49:35

标签: python syntax

我刚开始玩pyglet。

first demo中,我按照以下代码运行:

window = pyglet.window.Window()

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

我知道这会注册一个事件处理程序,但我不明白如何。

如果没有'@'语法,怎么可以重写?

2 个答案:

答案 0 :(得分:3)

它被称为“事件装饰者”。是的,你可以写一下

window.on_draw = on_draw

在“def on_draw()”定义之后,不使用装饰器;但是如果窗口已经有on_draw,它将被覆盖。装饰器将多个事件处理程序“链接”在一起。

答案 1 :(得分:0)

根据docsWindow.event是装饰者。可以使用@简单地添加装饰器。

相关问题