Guido van Rossum suggested: > stream.write(a1, a2, ...) > stream.writeln(a1, a2, ...) > stream.writef(fmt, a1, a2, ...)
> builtin functions write(), writeln(), writef() that call the > corresponding method on sys.stdout. These seem good, except that write typically matches read, and I'm not sure how well the equivalents would work. (They can be defined; they just feel a little too fragile, like C's input.) > Another real problem with print is that, while the > automatic insertion of spaces is nice for beginners, > it often gets in the way, and what you have to do to > avoid this is pretty nasty: either drop print altogether > in favor of sys.stdout.write(), or use string concatenation > or a format string, assuming you have all the pieces > available at the same time (which often you don't). I usually take "I need to get rid of spaces" as an indication that I care about exact (not just readable, but exact) formatting, and *should* use either write or a format string (possibly waiting to collect the data). Putting the spaces back in (without a format string) would be even worse. Charles Cazabon's pointed out that it *could* be as simple as writeln(' '.join( ... )) but if there isn't a builtin alias, people (at least those not intimidated by the magic required to get simple output) *will* do things at least as bad as writeln(a, " ", b, " ", c) or as bugprone as # oops, format string and debug vars got out of sync writef(" Current Vals:%s %d %d%s", curval, i, k, name, age) -jJ _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com