Russ wrote: > I tried the following: > > >>>>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. >
This is like the difference of tuples and lists. Your own class is mutable. y=x # Names x and y are now bound to the same object. y*=2 # change the object bound to names x and y. Builtin complex is immutable, so you can not manipulate the contents. y*=2 # creates a new object (value = 2*y), binds it to name y. -- http://mail.python.org/mailman/listinfo/python-list