คำตอบที่ได้รับการยอมรับแล้วกล่าวPEP 238 ฉันแค่ต้องการเพิ่มความรวดเร็วให้กับเบื้องหลังสำหรับผู้ที่สนใจในสิ่งที่กำลังเกิดขึ้นโดยไม่ต้องอ่าน PEP ทั้งหมด
งูหลามแผนที่ประกอบการเช่น+
, -
, *
และ/
ฟังก์ชั่นพิเศษดังกล่าวว่าเช่นa + b
เทียบเท่ากับ
a.__add__(b)
เกี่ยวกับการแบ่งในหลาม 2 มีโดยเริ่มต้นเท่านั้น/
ซึ่งแมปไป__div__
และผลที่ได้จะขึ้นอยู่กับรูปแบบการใส่ (เช่นint
, float
)
Python 2.2 แนะนำ__future__
คุณสมบัติdivision
ซึ่งเปลี่ยน semantics ส่วนด้วยวิธีต่อไปนี้ (TL; DR ของ PEP 238):
/
แผนที่__truediv__
ที่จะต้อง "ส่งคืนการประมาณที่สมเหตุสมผลของผลลัพธ์ทางคณิตศาสตร์ของการหาร" (ใบเสนอราคาจาก PEP 238)
//
แผนที่ไป__floordiv__
ซึ่งควรส่งคืนผลลัพธ์ที่เป็นพื้นของ/
ด้วย Python 3.0 การเปลี่ยนแปลงของ PEP 238 กลายเป็นพฤติกรรมเริ่มต้นและไม่มีวิธีพิเศษ__div__
ในโมเดลวัตถุของ Python อีกต่อไป
หากคุณต้องการใช้รหัสเดียวกันใน Python 2 และ Python 3 ให้ใช้
from __future__ import division
และติด PEP 238 ความหมายของและ/
//