2016/11/26

[py2]feature無きprint()は、タプル扱い

「動力無きK村」(炎色反応の覚え方)みたいだが、その話ではない。

python2ではステートメントのprintがあるから、組み込み関数のprint()が使いたい場合にはimport文を書くように、となっている。
28.4. future_builtins — Python 3 のビルトイン — Python 2.7.x ドキュメント

が、python2.7でprint()とprintを両方書いたが、どちらも動いた。
なぜだろうか?

 

PEP 3105 -- Make print a function | Python.org
featureのimportを書いていない場合は、print()の関数、ではなく、printステートメント+タプル、という動作になっているということか?

print('Hello! I\'m Python2', 'not feature')

これをpython2.7.12で実行すると、こうなった。

("Hello! I'm Python2", 'not feature')

python3.5.2だと、こうなる。

Hello! I'm Python2 not feature

なるほどねぇ。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。