- くだすれPython(超初心者用) その25©2ch.net
611 :デフォルトの名無しさん[sage]:2015/02/22(日) 10:13:30.86 ID:TAWF76o2 - 最初の質問者じゃないんだけど、疑問に思ったので便乗質問させてください。
print関数って2.6以降の2.x系にバックポートされて、 2.6と2.7ではprint文とprint関数の両方が使える、 と思い込んでたけど、実は違った。 ここの流れを見ていて、同じprint関数なのになんで挙動が違う? と疑問に思って調べて、初めて知った。 2.x系におけるprint()は、見かけに相違して、print関数ではなく、 () で囲まれた式をprint文に渡しているものとして解釈されている。 ("a") みたいに () の中がひとつなら2.xでも3.xでも同じ挙動だけど、 ("a", "b") みたいに () の中に "," で区切って複数を並べると、 2.xではタプルをprint文に渡したものとして解釈される (一方、3.xではふたつの引数をprint関数に渡したものとして解釈される。 2.xにおける print "a", "b" と同じ)。 2.x系でprint()に3.x系と同じ挙動を求めるなら、 from __future__ import print_function を実行して、 print文を無効にし、print関数を有効にしなければならない。 この理解であっていますか?
|