km <[EMAIL PROTECTED]> wrote:
> 
> Hi all,
>  was going thru the new features introduced into python2.4 version.
> i was stuck with 'decorators' -  can someone explain me the need of such a 
> thing called decorators ? 

Decorators are not 'needed'.  They are a convenience.

Among the things that they are meant to make more convenient are the
following...

class foo:
    @staticmethod
    def goo(arg, ...):
        pass

rather than...

class foo:
    def goo(arg, ...):
        pass
    goo = staticmethod(goo)

And other things of its ilk.  Where they will be used the most right off
is in function signatures for PyObjC bindings in (I believe) OSX by Bob
Ippolito.  Using his example:

class FooClass(NSObject):
     def returnsAnInteger(self):
         return 1
     returnsAnInteger = objc.selector(returnsAnInteger, signature='i@:')

     def returnsVoidTakesAnInteger_(self, anInteger):
         pass
     returnsVoidTakesAnInteger_ = \
         objc.selector(returnsVoidTakesAnInteger_, signature='v@:i')

...becomes...

def signature(sig):
     def _signature(fn):
         return objc.selector(fn, signature=sig)
     return _signature

class FooClass(NSObject):
     @signature('i@:')
     def returnsAnInteger(self):
         return 1

     @signature('v@:i')
     def returnsVoidTakesAnInteger_(self, anInteger):
         pass


 - Josiah

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to