受け入れられた回答はすでにPEP 238に言及しています。私は、PEP全体を読まずに、何が起こっているのか興味がある人のために、舞台裏をざっと見たいだけです。
Pythonはのような演算子をマッピングし+
、-
、*
および/
例えばような、特別な機能にa + b
同等です
a.__add__(b)
Python 2での除算に関しては、デフォルトでは、/
どの型にマップさ__div__
れ、結果は入力タイプに依存するだけです(例えばint
、float
)。
Python 2.2はこの__future__
機能を導入しdivision
、除算のセマンティクスを次のように変更しました(PEP 238のTL; DR)。
/
__truediv__
「除算の数学的結果の合理的な近似値を返す」必要があるマップ(PEP 238からの引用)
//
にマップされます__floordiv__
。これは、/
Python 3.0では、PEP 238の変更がデフォルトの動作になり、__div__
Pythonのオブジェクトモデルに特別なメソッドはありません。
Python 2とPython 3で同じコードを使用する場合は、
from __future__ import division
スティックのPEP 238意味論へ/
と//
。