[Python-Dev] complex I/O problem

Josiah Carlson jcarlson at uci.edu
Tue Feb 1 18:31:22 CET 2005


"A.M. Kuchling" <amk at amk.ca> wrote:
> 
> On Tue, Feb 01, 2005 at 11:11:37AM -0500, Neal Becker wrote:
> > complex ('(2+2j)')
> > Traceback (most recent call last):
> >   File "<stdin>", line 1, in ?
> > ValueError: complex() arg is a malformed string
> > 
> > Whatever format is used for output should be accepted as input!
> 
> This isn't true in general; it's not true of strings, for example, nor
> of files.  Parsing complex numbers would be pretty complicated,
> because it would have to accept '(2+2j)', '2+2j', '3e-6j', and perhaps
> even '4j+3'.  It seems easier to just use eval() than to make
> complex() implement an entire mini-parser.


Which brings up the fact that while some things are able to make the
eval(str(obj)) loop, more are able to make the eval(repr(obj)) loop
(like strings themselves...).

 - Josiah



More information about the Python-Dev mailing list