Магический метод метакласса
>
>
>
print C.__str__() [...] TypeError: descriptor '__str__' of 'object' object needs an argument >
>
>
print M.__str__(C) This is class C
Важно заметить, что этот конфликт диспетчеризации не ограничен магическими методами. Если мы изменим C, добавив атрибут C.mm, возникнет та же проблема (не имеет значения, является ли имя регулярным методом, методом класса, статическим методом или простым атрибутом):