非正式接口
非正式接口提供一组方法,所有实现该接口的类都必须定义这些方法。下面是一个名为 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 ____.____[____]