Pytonの2系と3系で動作を分ける方法について勉強した。
ソースコード
#sysをインポート import sys #pythonのバージョンに合わせてメソッドを切り替える関数 def divide_input(): if sys.version_info >= (3, 0): return input() else: return raw_input()
解説
今回のコードでは、コンソールでユーザーの入力を求めるメソッドを実装した。
インプットのメソッドは、Pyton3系ではinput()、2系ではraw_input()になるそうだ。
ややこしいから統一してくれればいいのにというぼやきはさておき。
上のコードでは、devide_inputメソッドとして、使っているPytonのバージョンに合わせてメソッドを切り替えている。
Pytonのバージョンを得るためには、sysを用いる。
sysモジュールについては下で解説。
このような切り替え方は他のコードでも応用できそうだと感じた。
使う機会があるかはわからないが。
sysモジュールについて
sysモジュールはPythonの標準ライブラリの一つ。
使用頻度は高いと思う。
インタプリタで使用・管理している変数や、インタプリタの動作に深く関連する関数を定義している。
今回使用しているのは、sysモジュールの中の、version_infoメソッド。
使用しているPytonのバージョンを知るためのメソッドだ。
上のコードでは、Pythonが3系かどうかで条件分岐をしている。
ちなみに、2系かどうかを判断するのは、version_info(2, 0) となる。
詳細はドキュメントを参照。
sys — システムパラメータと関数