[Python-Dev] Replacement for print in Python 3.0 (original) (raw)

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