[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] @



oh. They showed up in some basic example code for pyglet:

import pyglet
window = pyglet.window.Window()
label = pyglet.text.Label('Hello, world',
                          font_name='Times New Roman',
                          font_size=36,
                          x=window.width//2, y=window.height//2,
                          anchor_x='center', anchor_y='center')
@window.event
def on_draw():
    window.clear()
    label.draw()
pyglet.app.run()



--- On Wed, 12/31/08, Noah Kantrowitz <noah@xxxxxxxxxxxxxxx> wrote:

From: Noah Kantrowitz <noah@xxxxxxxxxxxxxx>
Subject: Re: [pygame] @
To: pygame-users@xxxxxxxx
Date: Wednesday, December 31, 2008, 1:59 PM

No, as I said, decorators are a rather advanced topic. Until you are  
more comfortable with the whole compiler process, I would just try  
writing a few small ones with various prints to see what happens.

--Noah

On Dec 31, 2008, at 2:57 PM, Yanom Mobis wrote:

> class compile?
> Anyway, does it effectively work that way?
>
>
>
> --- On Wed, 12/31/08, Noah Kantrowitz <noah@xxxxxxxxxxxxxx> wrote:
>
> From: Noah Kantrowitz <noah@xxxxxxxxxxxxxx>
> Subject: Re: [pygame] @
> To: pygame-users@xxxxxxxx
> Date: Wednesday, December 31, 2008, 1:41 PM
>
> No, i has nothing to do with runtime. Decorators are evaluated during
> class compile.
>
> --Noah
>
> On Dec 31, 2008, at 12:05 PM, Yanom Mobis wrote:
>
>> Ohhhh!  I get it now! It's used to insure that a specific function
>> is always called before another. Thanks for clearing it up for me..
>> --- On Wed, 12/31/08, Michael Phipps <michael.phipps@xxxxxxxxxxx>
>> wrote:
>>
>> From: Michael Phipps <michael.phipps@xxxxxxxxxxx>
>> Subject: Re: [pygame] @
>> To: pygame-users@xxxxxxxx
>> Date: Wednesday, December 31, 2008, 4:37 PM
>>
>> Yanom -
>>
>> A decorator is a method that takes another method as a parameter so
>> that it can do something.. It is usually used for aspect oriented
>> programming.
>>
>> For example:
>>
>> def logThisMethodCall(methodCall)
>>      # Do some logging here
>>
>> @logThisMethodCall
>> def myMethod(a,b,c)
>>      # do Somthing in here
>>
>> Now, whenever you call "myMethod", logThisMethodCall gets called
>> first, with the invocation of myMethod passed into it. You can use
>> it for logging, security (i.e. does this person have permission to
>> be calling this), etc.
>>
>> Michael
>>
>>
>>
>>
>> -----Original Message-----
>> From: "Yanom Mobis" [yanom@xxxxxxxxxxxxxx]
>> Date: 12/31/2008 11:19
>> To: pygame-users@xxxxxxxx
>> Subject: Re: [pygame] @
>>
>> so when you do this:
>>
>> @foo
>> def bar(): pass
>>
>> you assume that a function foo() already exists.
>>
>> and it creates something like this:
>>
>> def foo():
>>      def bar(): pass
>>      pass
>>
>> ?
>> I'm sorry, I just got confused.
>>
>>
>>
>>
>> - On Wed, 12/31/08, Noah Kantrowitz <noah@xxxxxxxxxxxxxx> wrote:
>> From: Noah Kantrowitz <noah@xxxxxxxxxxxxxx>
>> Subject: Re: [pygame] @
>> To: pygame-users@xxxxxxxx
>> Date: Wednesday, December 31, 2008, 3:01 AM
>>
>> decorator. The short version is that this
>>
>> @foo
>> def bar(): pass
>>
>> is the same as this
>>
>> def bar(): pass
>> bar = foo(bar)
>>
>> The long version is "look it up because it gets very complicated and
>> voodoo-ish"
>>
>> --Noah
>>
>> On Dec 30, 2008, at 9:55 PM, Yanom Mobis wrote:
>>
>>> I was reading some Python code examples, and i found the @ symbol.
>>> What
>> exactly does this operator do?
>>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
>
>
>
>
>