Питон - статьи

         

Разрешение конфликта метаклассов вручную


>
>
>
M_AM_B = type("M_AM_B", (M_A,M_B), {}) >
>
>
class C(A,B): __metaclass__ = M_AM_B ... >
>
>
type(C) <class 'M_AM_B'>

Разрешение конфликтов метаклассов становится более сложным, если вы желаете "вставить" дополнительные метаклассы в класс вслед за используемыми его предками. Кроме того, в зависимости от метаклассов родительских классов могут появиться избыточные метаклассы - и идентичные метаклассы в различные предках, и отношения базовый класс/производный класс среди метаклассов. Модуль noconflict предоставляет пользователям автоматическое и надежное решение этих проблем (см. Ресурсы).



Содержание раздела