implementation of "complex" type

cfbolz at googlemail.com cfbolz at googlemail.com
Thu Mar 9 13:37:44 CET 2006


Hi!

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.

In CPython it is actually written in C, implemented in the
Objects/complexobject.c file. See for example:

http://svn.python.org/view/python/trunk/Objects/complexobject.c?rev=42596&view=markup

In PyPy it is indeed a pure Python implementation right now:

http://codespeak.net/svn/pypy/dist/pypy/module/__builtin__/app_complex.py

Cheers,

Carl Friedrich Bolz




More information about the Python-list mailing list