On 6/26/10 6:24 PM, Steven D'Aprano wrote:
On Sun, 27 Jun 2010 03:38:30 +1000, Lie Ryan wrote:
All in all, the new syntax requires 4 keystrokes, none of which are home
keys; compared with old syntax which requires 1 keystroke in thumb's
home position.

Producing print function takes a little bit more effort than producing a
print statement.


Worrying about this sort of micro-optimisation is hardly a productive use
of anyone's time. Nobody here is complaining that typing len(x) requires
three extra keystrokes compared to len x and therefore Python should make
len a statement. Why should print be any different?

I swear I've heard a "it should be x.len" argument once where saving a character was a key selling point (in addition to some vague OOP-handwaving thing which indicated that it would also be Clearly The Correct Thing To Do Anyways).

Just because no one is complaining about that *right now* doesn't mean they won't -- and now you had to go and remind them of it. :)

Just saying.

As for the keystroke count -- pssh, my editor has me do 'print<tab>' and it not only puts both the open and closing parens, but also moves my cursor in between them. That's exactly the same effort as old-print! :)


(1) The main use-cases for print are quick (and usually dirty) scripts,
interactive use, and as a debugging aid. So this change isn't going to
effect many large code bases, but mostly small scripts that can be fairly
easily changed by hand.

I got called (essentially) elitist and condescending for thinking that was basically the only places anyone really used print. Careful there. :)

(4) Despite what the OP says, the ability to overload print is not a
small feature, it is a major win. My scripts are filled with ugly
functions pr(), print_() or prnt(), depending on how I was feeling at the
time, none of which *quite* match the behaviour of the print statement
correctly. The ability to redefine print in Python 3 is, to me, the
Killer App for simple scripting:

[snip]

The ability to make print() understand your script's --verbose flag is,
in my mind, the most underrated plus for Python 3.


Interestingly enough, the reason I never use print is because its a statement and is inflexible in this regard. If it were always a function, I imagine my opinion of print's usefulness would be very different today: I too have a number of slightly unique little pseudo-print functions scattered throughout my codebase. That, and various hacks replacing sys.stdout.

The rigidness of the statements behavior (and therefore inability to bend it to my whim) is why I always just equated it with temporary or quick and dirty usage.


--

   ... Stephen Hansen
   ... Also: Ixokai
   ... Mail: me+list/python (AT) ixokai (DOT) io
   ... Blog: http://meh.ixokai.io/

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to