基本クラスが dict などの python 組み込み型から派生するインターフェイスを構築したいと思います。そのためにabc
、標準ライブラリの python を使用しますが、次のテストを実行すると、具体的なクラスの実装で欠落しているメソッドに対して例外が発生しません。
import abc
class Base(dict):
__metaclass__ = abc.ABCMeta
@abc.abstractmethod
def toto(self):
pass
class Concrete(Base):
pass
if __name__ == "__main__":
c = Concrete()
classがではなくBase
から派生する場合、期待されるメカニズムが機能します。この動作の理由について何か考えはありますか? それは期待されるものですか?もしそうなら、これを回避する方法は?object
dict
abc