Mayaを始め多くのCGソフトでサポートされているPythonのバージョン2系のサポートが2020年までらしいです(´・ω・`)
後2年ちょい。。。
サポート終了しても2系のバージョンなのかわかりませんが、すこしは3系を意識しておいて準備しておきたいですよね!
そこで!
「__future__モジュール」を使って、2系を使いながらも3系のノリでコーディングしてみませんか!?
__future__モジュールって?
__future__ モジュールは Python 2系用のモジュールです。デフォルトで入っているので別途インストールなどは必要ありません(*´ω`*)b
Python 3系に実装された互換性の無い機能を、Python 2系で使用できるようにしてくれます!ステキング!
print_function
Python 3系では「print」は、文から関数になって、予約語からも削除されました!
具体的にどう変わるかっというと、、、「print “Message”」を「print(“Message”)」と書かないといけないようになりました(;´∀`)
これをPython 2系でやるには、以下のようにします∠( ゚д゚)/
from __future__ import print_function print("Message")
unicode_literals
Python 2系では、文字列の型が「str」と「unicode」があって日本語などがあるとややこしかったのですが、Python 3系では基本的に「unicode」として扱うようになりました!
from __future__ import unicode_literals message = "メッセージ" print(type(message)) # type 'unicode'
division
Python 2系では、int同士の割り算は小数点以下切り捨てでしたが、Python 3系では自動でfloatになるほうになりました。(逆に今まで通りにしたい場合は、演算子「//」 を使います)
from __future__ import division print(1/2) # 0.5 print(1//2) # 0
absolute_import
Python 2系では、importはカレントディレクトリのモジュールが優先されていましたが、Python 3系では、相対インポートではなく絶対インポート優先になります。これを使うことで、標準モジュールをいつのまにか上書きしてしまう可能性を防げるようになります!
from __future__ import absolute_import
オススメの設定
各モジュールの冒頭で、以下のモジュールをimportしておくとCGソフトで多く使われているPython 2.7でPython 3系を意識してコーディングできると思います!(`・ω・´)ゞ
from __future__ import absolute_import from __future__ import unicode_literals from __future__ import print_function from __future__ import division