Thanks guys, In the example the __call__ method has *args and **kws as arguments. Is that required?
Also when, in what situation would you use callable objects? Cheers, T -------- Original-Nachricht -------- > Datum: Wed, 15 Jul 2009 12:02:05 -0700 > Von: wesley chun <wes...@gmail.com> > An: vince spicer <vinces1...@gmail.com>, tmatsum...@gmx.net > CC: Kent Johnson <ken...@tds.net>, tutor@python.org > Betreff: Re: [Tutor] decorators, __call__ (able) objects > >>> > Can some one give, or point to some good examples of how @decorators > >>> > work, and __call__ (able) objects? > > > > simple example of calling a class > > > > class myKlass(object): > > > > def __call__(self, *args, **kws): > > print "i was called" > > > > >>> test = myKlass() > > >>> test() > > i was called > > > close. the example was right, but the description wasn't accurate... > you meant, "calling an instance." i'm going to plagarize and rip this > right out of section 14.1.4 from "Core Python Programming:" > > "Python provides the __call__() special method for classes, which allows a > programmer to create objects (instances) that are callable. By default, > the > __call__() method is not implemented, meaning that most instances are > not callable. However, if this method is overridden in a class > deļ¬nition, > instances of such a class are made callable. Calling such instance objects > is > equivalent to invoking the __call__() method. Naturally, any arguments > given in the instance call are passed as arguments to __call__()." > > as far as decorators go, kent's tutorial is great place to start. here > are 2 more articles plus PEP 318, where they were defined: > > http://www.ibm.com/developerworks/linux/library/l-cpdecor.html > http://www.artima.com/weblogs/viewpost.jsp?thread=240808 > http://www.python.org/dev/peps/pep-0318 > > in addition, i devoted section 11.3.6 of Core Python to decorators. > > finally, it should be mentioned that starting in 2.6, you can now > decorate *classes*, as seen here in PEP 3129: > > http://www.python.org/dev/peps/pep-3129/ > > hope this helps! > -- wesley > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > "Core Python Programming", Prentice Hall, (c)2007,2001 > "Python Fundamentals", Prentice Hall, (c)2009 > http://corepython.com > > wesley.j.chun :: wescpy-at-gmail.com > python training and technical consulting > cyberweb.consulting : silicon valley, ca > http://cyberwebconsulting.com -- Jetzt kostenlos herunterladen: Internet Explorer 8 und Mozilla Firefox 3 - sicherer, schneller und einfacher! http://portal.gmx.net/de/go/atbrowser _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor