def m1(name, bases, atts):
    print('m1 called for ' + name)
return type(name, bases, atts)

def m2(name, bases, atts):
    print('m2 called for ' + name)
return type(name, bases, atts)


class c1(object, metaclass=m1):
    pass
type(c1)


class sub1(c1):
    pass
type(sub1)


class c2(object, metaclass=m2):
    pass


class sub2(c1, c2):
    pass
type(sub2)
Привычно наследовать метаклассы от типа?