始める無料で始める

非公式インターフェース

非公式インターフェースは、そのインターフェースを実装するすべてのクラスで定義すべきメソッドの集合を示します。以下の Supplier というクラスは、非公式インターフェースとして機能します。YogurtSupplierSupplier インターフェースで定められた契約を満たすには、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 ____.____[____]
コードを編集して実行