Pythonに「interface」というキーワードはない
他のプログラミング言語(JavaやC#など)を学んだことがある人は、「interface」という専用のキーワードを見たことがあるかもしれません。実はPythonにはそのものズバリのキーワードはありません。その代わりPythonでは、前のレッスンで習った抽象クラス(abc)を使う方法と、これから紹介する「ダックタイピング」という、もっと緩やかな考え方の、主に2通りでインターフェースに近い設計を実現します。
ダックタイピングという発想
ダックタイピングとは「アヒルのように歩き、アヒルのように鳴くなら、それはアヒルとして扱ってしまおう」という考え方です。つまりPythonでは、あるオブジェクトが特定のクラスを継承しているかどうかよりも、「必要なメソッドを持っているかどうか」の方が重視されます。まったく無関係な2つのクラスでも、同じ名前のメソッドさえ持っていれば、呼び出す側のコードを共通化できてしまうのです。これはPythonらしい、とても柔軟な設計思想の1つです。