Again: Please hear my plea: print without softspace

David MacQuigg dmq at
Thu Mar 4 18:14:18 CET 2004

On Thu, 04 Mar 2004 12:52:27 GMT, Dang Griffith 
>On Tue, 02 Mar 2004 10:32:35 -0700, David MacQuigg wrote:
>>The 'print' statement is just shortcut for 'sys.stdout.write' with
>>some convenience features suitable for most users.  If you need
>>something else, just define your own shortcut, don't deprecate a
>>statement that is exactly what most users want.
>'print' is not a shortcut for 'sys.stdout.write'.
>'print' is a statement.  'sys.stdout.write' is a function.
>You can't define a shortcut for a statement.

I'm not using the word 'shortcut' very precisely.  Mark Lutz says what
I mean more clearly in Learning Python, 2nd ed. p. 143: "the print
statement ... provides a user-friendly interface to the sys.stdout
object, with bit of default formatting."  I conclude from this that
'print' has no special functionality unavailable through the stdout
object, and that the proper way to change the default user-friendly
interface is to write a new one, doing just what 'print' does, but
with different defaults.

What I think is going on "under the hood" with the print statement is:

def print(*args):
   for arg in args:
      sys.stdout.write(' ')

To make a variation on this, just add or delete the extra formatting.
Of course, we need to call it something besides the keyword 'print'.

-- Dave

More information about the Python-list mailing list