Неформальные интерфейсы
Неформальные интерфейсы задают набор методов, которые должны быть определены во всех классах, реализующих данный интерфейс. Ниже приведён класс 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. - Завершите выполнение контракта интерфейса
Supplier, определив метод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 ____.____[____]