概要 Python には他の静的型付け言語のような明確な interface キーワードがありませんが、それに代わる Protocol という概念を最近知りました。 そこで、個人的に好んで使っている「Service クラスに Repository を注入する」という DI(依存性注入)パターンを、この Protocol を使って Python でどう実現できるか試してみることにしました。 この記事では、dependency-injector も組み合わせ、その具体的な実装方法をサンプルコードと共に備忘録として残します。 今回使ったコードは以下に置いてあります。 Protocol でインタフェースを定義する まずはインタフェースを Protocol を使って定義します。 Protocol とは Python の Protocol は、Go 言語の interface に非常によく似た概念です
