Hacker News new | ask | show | jobs
by est 3256 days ago
print chevron in python2 is super awesome

    print 'hello'
    f = open(file, 'w')
    print>>f, 'world'
It just feels more "powerful" than Py3k's

    print(somestring, file=someopenfile)
4 comments

> print chevron in python2 is super awesome

Print chevron is super awful, it's unreadable, hard to remember and difficult to search for.

The print function was a welcome improvement: it's not a statement (so can be used in a lambda, no need to fall back to sys.stdout.write), it doesn't use weird-ass syntax to redirect or suppress the final newline and it's more extensible (e.g. "end" or "flush" kwargs would have been… challenging to add to the keyword version)

> More powerful

But less obvious and readable, which is anti pythonic. If you want "power" over readability, there is ruby/perl.

I'm not going to discuss perl readability, but the fact is that I cannot simply 0%% to beginning of the block in "readable" python. ?:$<CR> does its job though.
Note that they say it feels more powerful, it's not like it is more powerful than the file kwarg.
If you want power you can

    fprint = lambda string: print(string, file=somefile)
and use fprint all over the place

that little chevron trick is bad imo

You'd like Perl:

  open my $file, '>', 'hello';
  print{$file} "Hello";