メタクラスの気になるアレ

ちょっと前に書いた 多重継承を制限してみる - プログラマのネタ帳 で、メタクラスに関してちょっと気になっていたことを検証。
それは、 メタクラスの継承ツリーはどうなるの? ってこと。

これが気になっていたので以下のコードで検証。

結果を簡単にまとめると、メタクラスを適用したクラス同士を多重継承する際は、適用したメタクラス同士が直接の継承関係にないと

<class '__main__.MetaClassAA'>
Traceback (most recent call last):
  File "metameta.py", line 47, in <module>
    class DerivedAB(BaseMetaA, BaseMetaB):
TypeError: Error when calling the metaclass bases
    metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases

なんてエラーが出るということ。
気をつけましょう。