เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

Informal interfaces

Informal interfaces กำหนดชุดของเมธอดที่ทุกคลาสที่ implement interface นั้นจะต้องนิยามไว้ ด้านล่างนี้คือคลาสชื่อ Supplier ที่ทำหน้าที่เป็น informal interface เพื่อให้ YogurtSupplier ปฏิบัติตามสัญญาที่ Supplier interface กำหนดไว้ จำเป็นต้องนิยามเมธอด take_order() และ make_delivery() ในแบบฝึกหัดนี้ ให้ฝึกทำสิ่งนั้น

class Supplier:
  def take_order(self, product_name, quantity):
    pass

  def make_delivery(self, order_id, location):
    pass

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Object-Oriented Programming ใน Python ระดับกลาง

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ในคลาส YogurtSupplier ให้นิยามเมธอด take_order() เพื่อเพิ่มคำสั่งซื้อลงใน dictionary self.orders
  • ทำให้สัญญาที่ Supplier interface กำหนดไว้ครบถ้วน โดยนิยามเมธอด make_delivery() เพื่อแสดงข้อความและลบคำสั่งซื้อที่เก็บด้วย order_id ออกจาก self.orders

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

class YogurtSupplier:
  def __init__(self):
    self.orders = {}
  
  # Finish defining the take_order() method
  ____:
    self.____[f"{product_name}_{quantity}"] = {
      "product_name": ____, "quantity": ____
    }
  
  # Implement a make_delivery() abstract method
  ____:
    print(f"Delivering order: {order_id} to {location}")
    del ____.____[____]
แก้ไขและรันโค้ด