Hello I am trying to customize the handling of complex numbers what I am missing is a builtin possibility to create complex numbers in polar coordinates
so first I wrote a standalone function >>> def polar(r,arg): ... re, im = r*cos(arg), r*sin(arg) ... return re + im*1j then I tried to extend this to a class >>> from math import * >>> class Complex(complex): ... def __init__(self,x,y,polar=False): ... if not polar: ... self.re, self.im = x,y ... else: ... self.re, self.im = x*cos(y), x*sin(y) ... >>> >>> c=Complex(1,1) >>> c (1+1j) >>> p=Complex(10,45.0/360*2*pi,True) Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: complex() takes at most 2 arguments (3 given) >>> and got stuck with this error it seems that last argument is rejected because complex wants to have 2 arguments but this works well .. >>> class X(object): ... def __init__(self,a): ... self.a = a ... >>> class Y(X): ... def __init__(self,a,b): ... self.a = a ... self.b = b ... >>> y=Y(1,2) what's causing the above exception? one more question >>> class Complex(complex): ... def __init__(self,x,y): ... self.real = x ... self.imag = y ... >>> c=Complex(1,1) Traceback (most recent call last): File "<stdin>", line 1, in ? File "<stdin>", line 3, in __init__ TypeError: readonly attribute >>> how can I work around this problem? Regards, Daniel -- http://mail.python.org/mailman/listinfo/python-list