การ Overload ตัวดำเนินการ +
ตัวดำเนินการที่ overload ได้ไม่ได้มีแค่ตัวดำเนินการเปรียบเทียบเท่านั้น คลาสใน Python ยังสามารถกำหนดการทำงานแบบกำหนดเองสำหรับตัวดำเนินการทางคณิตศาสตร์ เช่น + และ - ได้ด้วย ในแบบฝึกหัดนี้ จะได้ฝึก overload ตัวดำเนินการ + สำหรับคลาส Storage
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Object-Oriented Programming ใน Python ระดับกลาง
คำแนะนำการฝึกหัด
- กำหนด magic method เพื่อ overload ตัวดำเนินการ
+สำหรับคลาสStorage - สร้างออบเจ็กต์
Storageใหม่ชื่อtotal_storageโดยให้capacityเท่ากับcapacityรวมของทั้งสองออบเจ็กต์ - นำออบเจ็กต์
onboard_storageและexternal_driveมาบวกกันเพื่อสร้างออบเจ็กต์total_storageแล้วพิมพ์ค่าcapacityของtotal_storage
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
class Storage:
def __init__(self, capacity):
self.capacity = capacity
def ____(____, ____): # Overload the + operator
# Create a Storage object with the sum of capacity
return ____(self.____ + other.____)
onboard_storage = Storage(128)
external_drive = Storage(64)
# Add the two Storage objects, show the total capacity
total_storage = ____ + ____
print(total_storage.____)