The decorator works at definition time, on a function (before it's turned into a method).
If you want to add more handlers at once, check out the end of http://www.pyglet.org/doc/programming_guide/stacking_event_handlers.html -- especially the very end. On Tue, Feb 25, 2014 at 3:44 PM, Henré Botha <[email protected]> wrote: > NEVER MIND I AM A HUGE BUTTGUY. The event stuff should go under the class's > __init__ method. :) > > > On Tuesday, February 25, 2014 4:43:32 PM UTC+2, Henré Botha wrote: >> >> Ok, here's another related question. Code here: >> http://pastebin.com/xPCeXz6M >> >> If I write a class definition containing event stuff, I expect the >> instantiation of that class to be the thing that causes the event handlers >> to be defined. Instead, it seems they get defined immediately. In my code >> example, the program will print "AFTER CLASS DEF" on any keypress, even if I >> instantiate the class after the second function definition. >> >> This is annoying. It seems to make it tricky to factor out things like >> menus or whatever into separate classes, because those classes won't allow >> the event handler definitions to be created on instantiation of whatever >> class. >> >> Or am I wrong? >> >> On Tuesday, February 25, 2014 12:03:39 PM UTC+2, Petr Viktorin wrote: >>> >>> On Python 3 you can use nonlocal, like so: >>> >>> def main(): >>> select = 0 >>> >>> @window.event >>> def on_key_press(symbol, mods): >>> nonlocal select >>> if symbol == key.DOWN: >>> select += 1 >>> >>> >>> On Tue, Feb 25, 2014 at 10:03 AM, Henré Botha <[email protected]> wrote: >>> > Ah, thanks Petr! I didn't know assignments re-designate scope. I'll try >>> > your solutions tonight. I'm on Python 3, but I have to say your two >>> > proposed >>> > 2.x hacks don't strike me as valid. We'll see, I guess :P >>> > >>> > -- >>> > You received this message because you are subscribed to the Google >>> > Groups "pyglet-users" group. >>> > To unsubscribe from this group and stop receiving emails from it, send >>> > an email to [email protected]. >>> > To post to this group, send email to [email protected]. >>> > Visit this group at http://groups.google.com/group/pyglet-users. >>> > For more options, visit https://groups.google.com/groups/opt_out. > > -- > You received this message because you are subscribed to the Google Groups > "pyglet-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/pyglet-users. > For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups "pyglet-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/pyglet-users. For more options, visit https://groups.google.com/groups/opt_out.
