class PrintDecorator: """Add print-like methods to any file-like object.""" def __init__(self, stream): """Store away the stream for later use.""" self.stream = stream def Print(self, *args, **kw): """ Print all arguments as strings, separated by spaces. Take an optional "delim" keyword parameter, to change the delimiting character. """ delim = kw.get('delim', ' ') self.stream.write(delim.join(map(str, args))) def PrintLn(self, *args, **kw): """ Just like print(), but additionally print a linefeed. """ self.Print(*args+('\n',), **kw) import sys out = PrintDecorator(sys.stdout) out.PrintLn(1, "+", 1, "is", 1+1) out.Print("Words", "Smashed", "Together", delim='') out.PrintLn()