Python3の機能をPython2.*で使えるようにできるらしい。
実は使えるようにできたという衝撃
また、__future__という文を使うことで、Python2.7などでPythoon3の一部機能を使えるようになります。
って書いててびっくりした。なお、Pythoon3はこういう風に本に書いてたからそのまま引用。
とりあえず、二つだけ紹介されてた。
future文で紹介されてたのは、
- from __future__ import print_function
- from __future__ import unicode_literals
の2種類。
一つ目は、print文をprint関数にするというもの。
二つ目は、文字列(str)型のリテラルをユニコード文字列型として扱うようにするもの。
ふ、二つ目、超おいしくない?
とりあえず遊んでみた。
t = "ぐるんぐるん" tu = u"ぐるんぐるん" print u"str:", type(t), len(t) print u"unicode:", type(tu), len(tu)
これを実行するともちろんこうなるわけで。
str: <type 'str'> 12 unicode: <type 'unicode'> 6
で、上の続きで
from __future__ import unicode_literals t = "ぐるんぐるん" tu = u"ぐるんぐるん" print u"str:", type(t), len(t) print u"unicode:", type(tu), len(tu)
をやってみると、
str: <type 'unicode'> 6 unicode: <type 'unicode'> 6
いやったぁぁぁぁぁぁー。ちなみに、今までの文字型には、b""的な感じで書けばいいらしいです。
けどよくよく考えてみると
「ユニコード文字列型に統一された」ってことはとてもうれしいことだけど、uの一文字が省略されただk…。いや、入力忘れがあるから、これはかなり嬉しいよ(震