future-import-boilerplate¶
ほとんどの Python ファイルでは、 ファイルの上部、コメントヘッダーの直後に次の boilerplate を含める必要があります。
from __future__ import (absolute_import, division, print_function)
ここでは、絶対的インポートと相対的インポート、除算、および出力に Python 3 セマンティクスを使用します。 これを実行することで、 Python 3 セマンティクスに従って、Python 2 と Python 3 の間で移植可能なコードを作成できます。
absolute_import¶
Python 2 が、import copy
など、ファイル内の名前のインポートを検出すると、
ファイルと同じディレクトリーから copy.py
を読み込もうとします。 これは、そのディレクトリーに、その名前の python ファイルがあり、
同じ名前の sys.path
に python モジュールがある場合に問題が発生する場合があります。 このとき、
Python 2 は、同じディレクトリーにあるものは読み込みますが、
sys.path
にあるものを読み込む方法はありません。 Python 3 では、デフォルトでインポートを絶対的にすることでこれを修正しています。import copy
は、
sys.path
から copy.py
を検索します。 同じディレクトリーから copy.py
をインポートする場合は、
コードは、相対的インポート from . import copy
を実行するために変更する必要があります。
See also
division¶
Python 2 では、整数で使用すると、除算演算子 (/
) は整数値を返します。 剰余があると、
この部分は省略されます (別名 床除算)。 Python 3では、
除算演算子 (/
) は常に浮動小数点数を返します。 商の整数部分を計算する必要があるコードは、
代わりに床除算演算子(//)を使用する必要があります。
See also