TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


Forums >


Re: Simple Traits Questions

Robert Kern

3/28/2010 12:24:00 AM

On 2010-03-27 08:19 , Ethan Furman wrote:
> Okay, different post for my actual questions. :)
> On the PyPI page for strait (http://pypi.python.org/pypi/st...)
> it has the example of choosing which methods to keep in the composed class:
> class TOSWidget(BaseWidget):
> __metaclass__ = include(Pack, Place, Grid)
> info = Pack.info.im_func
> config = Pack.config.im_func
> configure = Pack.configure.im_func
> slaves = Pack.slaves.im_func
> forget = Pack.forget.im_func
> propagate = Pack.propagate.im_func
> My question is:
> Why use
> info = Pack.info.im_func
> instead of
> info = Pack.info
> ?

Pack.info is an unbound method object attached to the Pack class, not a function
object. It has some extra semantics on top of functions and is tied to the Pack
class. The .im_func attribute gets the actual function object underneath. When
defining the TOSWidget class, the objects defined in the suite under the class:
statement need to be actual functions in order to be turned into unbound methods
attached to the TOSWidget class.

Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco