Jawaban yang diterima sudah menyebutkan PEP 238 . Saya hanya ingin menambahkan pandangan cepat ke belakang layar untuk mereka yang tertarik dengan apa yang terjadi tanpa membaca keseluruhan PEP.
Python peta operator seperti +
, -
, *
dan /
untuk fungsi-fungsi khusus, sehingga misalnya a + b
setara dengan
a.__add__(b)
Mengenai pembagian di Python 2, secara default hanya ada /
yang memetakan __div__
dan hasilnya tergantung pada jenis input (misalnya int
, float
).
Python 2.2 memperkenalkan __future__
fitur division
, yang mengubah semantik divisi dengan cara berikut (TL; DR dari PEP 238):
/
peta __truediv__
yang harus "mengembalikan perkiraan yang masuk akal dari hasil matematika divisi" (kutipan dari PEP 238)
//
peta ke __floordiv__
, yang seharusnya mengembalikan hasil lantai dari/
Dengan Python 3.0, perubahan PEP 238 menjadi perilaku default dan tidak ada metode khusus __div__
dalam model objek Python.
Jika Anda ingin menggunakan kode yang sama dalam Python 2 dan Python 3 gunakan
from __future__ import division
dan menempel pada semantik PEP 238 dari /
dan //
.