[Python-Dev] Complex constructors [was Re: Floor division]
Nick Maclaren
nmm1 at cus.cam.ac.uk
Wed Jan 24 12:28:53 CET 2007
Gareth McCaughan <gareth.mccaughan at pobox.com> wrote:
>
> ... The question is whether
> it makes sense to define complex(a,b) = a+ib for all a,b
> or whether the two-argument form is always in practice going
> to be used with real numbers[1]. If it is, which seems pretty
> plausible to me, then changing complex() to complain when
> passed two complex numbers would (1) notify users sooner
> when they have errors in their programs, (2) simplify the
> code, and (3) avoid the arguably broken behaviour Tim was
> remarking on, where complex(-0.0).real is +0 instead of -0.
>
> [1] For the avoidance of ambiguity: "real" is not
> synonymous with "double-precision floating-point".
Precisely. On this matter, does anyone know of an application
where making that change would harm anything? I cannot think of
a circumstance under which the current behaviour adds any useful
function over the one that raises an exception if there are two
arguments and either is complex.
Yes, of course, SOME people will find it cool to write complex(a,b)
when they really mean a+1j*b, but ....
Regards,
Nick Maclaren,
University of Cambridge Computing Service,
New Museums Site, Pembroke Street, Cambridge CB2 3QH, England.
Email: nmm1 at cam.ac.uk
Tel.: +44 1223 334761 Fax: +44 1223 334679
More information about the Python-Dev
mailing list