Simple Traits Questions

Ethan Furman ethan at stoneleaf.us
Sun Mar 28 15:46:36 CEST 2010


Robert Kern wrote:
> 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/strait/0.5.1)
>> 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.

Ah, thank you.

In Python 3, though, would the Pack.info form be correct?

~Ethan~




More information about the Python-list mailing list