开始使用免费开始使用

非正式接口

非正式接口提供一组方法,所有实现该接口的类都必须定义这些方法。下面是一个名为 Supplier 的类,它将作为非正式接口。为了让 YogurtSupplier 遵守 Supplier 接口约定,它必须定义 take_order()make_delivery() 方法。在本练习中,您将练习完成这些方法。

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

  def make_delivery(self, order_id, location):
    pass

本练习是课程的一部分

Python 面向对象编程进阶

查看课程

练习说明

  • YogurtSupplier 类中,定义 take_order() 方法,将一个订单添加到 self.orders 字典中。
  • 通过定义 make_delivery() 方法来完成 Supplier 接口的约定:打印一条消息,并从 self.orders 中删除使用 order_id 存储的订单。

交互式实操练习

通过完成这段示例代码来试试这个练习。

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 ____.____[____]
编辑并运行代码