受け入れられた回答はすでに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意味論へ/と//。