Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.python
Re: Simple Traits Questions
Robert Kern
3/28/2010 7:04:00 PM
On 2010-03-28 08:46 , Ethan Furman wrote:
> 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/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.
>
> Ah, thank you.
>
> In Python 3, though, would the Pack.info form be correct?
Seems so:
Python 3.1 (r31:73578, Jun 27 2009, 21:49:46)
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> class Pack():
.... def info(self, x):
.... pass
....
>>> Pack.info
<function info at 0xe8390>
--
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
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
Re: Simple Traits Questions
Inserendo la tua e-mail nella casella sotto, riceverai un avviso tramite posta elettronica ogni volta che il motore di ricerca troverà un nuovo messaggio per te
Il servizio è completamente GRATUITO!
x
Login to ForumsZone
Login with Google
Login with E-Mail & Password