Overloading =

Felix Thibault felixt at dicksonstreet.com
Sun Feb 20 14:38:08 EST 2000


At 22:47 2/17/00 GMT, jhefferon at my-deja.com wrote:
>I have a class, rclass.  It has an attribute value.  Can I arrange
>so that the string
>    r1=r2
>sets r1.value to equal r2.value (where r1 and r2 are class instances,
>of course) without changing anything else about r1?  I'm willing to
>test, say, that r1.classtype==r2.classtype or something, first to make
>sure the assignment is sensible.
>
>And if so, can I also have r1=7 set r1.value to be 7?
>
>I want to have a box in a GUI where users can enter code, such as
>assignments, and I'd like to avoid the reference to the underlying
>attribute.
>
>Thanks,
>Jim Hefferon jim at joshua.smcvt.edu
>
>
>Sent via Deja.com http://www.deja.com/
>Before you buy.
>-- 
>http://www.python.org/mailman/listinfo/python-list
>
>

Would it be OK for this assignment to use another operation ?
You could use something like-

def __lshift__(self, other):
    if hasattr(other, 'value'):
        self.value = other.value
    else:
        self.value = other

then your users could type r1 << r2 to put the value of r2 into r1.

-Felix





More information about the Python-list mailing list