proxy class and __add__ method

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Magnus Schuster

    proxy class and __add__ method


    Hello,
    I have written the following small proxy class which I expect to pass all
    function calls to the 'original' object:

    --- BEGIN ---
    class proxy(object):
    def __init__( self, subject ):
    self.__subject = subject
    def __getattr__( self, name ):
    return getattr( self.__subject, name )

    prx_i=proxy(1)
    print hasattr(prx_i,' __add__')
    j=prx_i.__add__ (1)
    k=prx_i+1
    --- END ---

    Actually the "hasattr(prx_i, '__add__')" returns "True" as expected, and
    "j=prx_i.__add_ _(1)" sets j=2.

    But "k=prx_i+1" raises a
    <type 'exceptions.Typ eError'>: unsupported operand type(s) for +: 'proxy'
    and 'int'.

    How is this addition different from the previous line "j=..."? And how can I
    modify the proxy class so that all methods are passed on, which are not
    explicitly overloaded?

    Regards,
    Magnus
    --
    View this message in context: http://www.nabble.com/proxy-class-an...p18715799.html
    Sent from the Python - python-list mailing list archive at Nabble.com.

Working...