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 _______________________________________________ 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