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~

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

Reply via email to