Steven D'Aprano wrote: > On Tue, 20 Feb 2007 00:44:24 +0000, Peter mayne wrote: > >> Steven D'Aprano wrote: >>> If Python 3 dropped the print >>> statement and replaced it with official_print_function(), how would that >>> help you in your goal to have a single code base that will run on both >>> Python 2.3 and Python 3, while still using print? >> Is there any reason why official_print_function isn't sys.stdout.write? > > Why would you want a convenience function like print to take one import, > three look-ups and 16 characters instead of always available, one look-up > and five characters?
Because it's compatible between Python 2.x and Python 3.x? :-) Because without print as a keyword, I can say "print = sys.stdout.write" and still have (some) convenience? (Albeit still one import and one lookup, though given the probable time taken to do the I/O, why worry about the lookup?) Or, if your editor has an abbreviation facility like Eclipse, you can type sys.stdout.write with less than 5 keystrokes. >> I can't remember the last time I used print in actual code (apart from >> short-lived debugging lines), so I'm bewildered as to why print seems to >> be so important. > > print is important for the convenience, for short-lived debugging, and for > use in the interactive interpreter. Why use print in the interactive interpreter? Just type the expression. Hmm, I was expecting that that wouldn't always work, but: >>> x=3 >>> if x==3: x ... 3 >>> for i in range(x): ... i ... 0 1 2 PJDM -- http://mail.python.org/mailman/listinfo/python-list