[Python-de] Methoden Wrapper

Simon Pamies lists at bipbap.de
Mit Aug 20 16:29:32 EDT 2003


Thx an alle!
funkt und macht mich glücklich ;-)

Simon

--------------------------------------------------------------
On 20.08.2003 at 15:26 Tomek Meka wrote:

>Hi!
>
>Wenn Du eine Methode hast, dann hast Du den self-Parameter als im_self
>Attribut. Ich hoffe, der Code ist selbserklärend:
>
>>>> class Plus:
>...    def __init__(self, v):
>...        self.v = v
>...    def plus(self, value):
>...        return self.v + value
>...
>>>> Plus.plus
><unbound method Plus.plus>
>>>> p = Plus(1)
>>>> p.plus(2)
>3
>>>> p.plus
><bound method Plus.plus of <__main__.Plus instance at 0x008FA8F0>>
>>>> p
><__main__.Plus instance at 0x008FA8F0>
>>>> method = p.plus
>>>> method.im_self
><__main__.Plus instance at 0x008FA8F0>
>>>> method(2)
>3
>>>> def wrap(fun):
>...    def wrapped(*args, **kwargs):
>...        print "calling method..."
>...        print "result: ", fun(*args, **kwar
>...    return wrapped
>...
>>>> w = wrap(method)
>>>> w
><function wrapped at 0x00901230>
>>>> w(2)
>calling method...
>result:  3
>
>Gruesse,
>Tomek
>
>
>
>
>-- 
>COMPUTERBILD 15/03: Premium-e-mail-Dienste im Test
>--------------------------------------------------
>1. GMX TopMail - Platz 1 und Testsieger!
>2. GMX ProMail - Platz 2 und Preis-Qualitätssieger!
>3. Arcor - 4. web.de - 5. T-Online - 6. freenet.de - 7. daybyday - 8. e-Post