[Python-Dev] Replacement for print in Python 3.0
Steven Bethard
steven.bethard at gmail.com
Fri Sep 2 22:26:51 CEST 2005
Paul Moore wrote:
> Interestingly enough, the other languages I use most (C, Java,
> VB(Script) and Javascript (under Windows Scripting Host)) all use
> functions for output. Except for C, I uniformly dislike the resulting
> code - the output structure gets hopelessly lost under the weight of
> string concatenation and explicitly added spaces.
Are your complaints about Guido's proposal or mine? The complaint
above doesn't quite seem relevant to my proposal, which retains the
space-insertion. Basically, my proposal suggests that files (and
other streams) gain a print method like:
class file(object):
...
def print(self, *args):
self.write(' '.join(str(arg) for arg in args))
self.write('\n')
and the print statement becomes the builtin print() function, defined like:
def print(*args):
sys.stdout.print(*args)
Looking at your use cases, this seems to cover them pretty well:
> - Debugging, most definitely. Adding a quick print "a =", a is often
> all that's needed.
Use the builtin print():
print('a =', a)
> - Logging, sometimes. When I just want some basic output, and don't
> want to deal with the complexity of the logging package.
Use the builtin print():
print('some logging message', foo)
> - Unix-style command-line utilities, where textual output to stdout is the norm.
Use the builtin print():
print('line of output')
> - Error and help messages, often with print >>sys.stderr
Use the print() method of sys.stderr:
sys.stderr.print('error or help message')
STeVe
--
You can wordify anything if you just verb it.
--- Bucky Katt, Get Fuzzy
More information about the Python-Dev
mailing list