Kabul edilen cevap zaten PEP 238'den bahsediyor . Sadece tüm PEP'i okumadan neler olup bittiğini merak edenler için perde arkasına hızlı bir bakış eklemek istiyorum.
Python gibi operatörler eşler +
, -
, *
ve /
özel fonksiyonlar, böyle mesela o a + b
eşdeğerdir
a.__add__(b)
Python 2'de bölünme ile ilgili olarak, orada sadece varsayılan olarak /
eşleştiren __div__
ve sonuç girişi tipleri bağlıdır (örneğin int
, float
).
Python 2.2 , bölüm semantiğini şu şekilde değiştiren __future__
özelliği tanıttı division
(TL; PEP 238'in DR'si):
/
__truediv__
"bölünmenin matematiksel sonucuna makul bir yaklaşım getirmesi" gereken haritalar (PEP 238'den alıntı)
//
haritalar için __floordiv__
tek katlı bir sonuç döndürmesi gerekir ki,/
Python 3.0 ile PEP 238 değişiklikleri varsayılan davranış haline geldi ve __div__
Python'un nesne modelinde artık özel bir yöntem yok .
Aynı kodu Python 2 ve Python 3'te kullanmak istiyorsanız
from __future__ import division
ve PEP 238 semantik sopa /
ve //
.