On Fri, 10 Mar 2006 02:19:10 +0100, SchÃ¼le Daniel wrote:

yeah, i miss some things in complex implementation

for example c=complex()

c.abs = 2**0.5

c.angle = pi/2

should result in 1+1j :)

Smiley noted, but consider:

c = complex()

=> what is the value of c here?

c.abs = 2**0.5

=> what is c's value now?

c.angle = pi/2

=> now c has the value 1+1j

Objects with indeterminate values are rarely a good idea.

A better way would be for complex numbers to take a constructor that can

take arguments in either Cartesian or polar form. So, hypothetically, the

following would all be equivalent:

1+1j

complex(1,1)

complex(real=1, img=1)

complex(len=2**0.5, theta=pi/2)

Another alternative would be a function to construct polar form complex

numbers. It could be a plain function or a static method:

cmath.polar(2**0.5, pi/2) => 1+1j

complex.polar(2**0.5, pi/2) => 1+1j

--

Steven.