Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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)


> 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";




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: