Python 3.10のパターンマッチングにおける暗黒魔法:`__subclasshook__`の悪用
この記事では、Python 3.10のパターンマッチングと抽象基底クラス(ABC)の`__subclasshook__`メソッドの組み合わせから生じる予期せぬ機能について探求しています。巧みに`__subclasshook__`を使うことで、パターンマッチングを「乗っ取る」ことができ、どの型が一致するかをカスタム定義したり、型だけでなくオブジェクトの属性に基づいてマッチングを行うこともできます。カスタムマッチャーの作成など、強力な機能を示しながらも、著者は、その予測不能で潜在的に有害な性質から、本番コードでのこのテクニックの使用を強く警告しています。
続きを読む