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