implementation of "complex" type

Mikael Olofsson mikael at isy.liu.se
Thu Mar 9 04:29:26 EST 2006


Russ wrote:
>>>>x = complex(4)
>>>>y = x
>>>>y *= 2
>>>>print x, y
> 
> (4+0j) (8+0j)
> 
> But when I tried the same thing with my own class in place of
> "complex" above, I found that both x and y were doubled. I'd like to
> make my class behave like the "complex" class. Can someone tell me the
> trick? Also, where can I find the code for for the "complex" class? I
> hope it's written in Python! Thanks.

Have your __imul__ and such return new objects, and not perform in-place 
modification if you do not want x and y to refer to the same object 
after y*=2.

/MiO



More information about the Python-list mailing list