Большинство читателей уже знакомо с концепциями объектно-ориентированного программирования: наследованием, инкапсуляцией, полиморфизмом. Однако обычно при этом подразумевается создание объектов заданного класса с определенными родителями. С другой стороны, выясняется, что ряд новых программных конструкций оказывается легче или вообще возможно создавать, только если мы можем настраивать сам процесс создания объектов. Метаклассы открывают возможность определенных типов "аспект-ориентированного программирования", например, вы можете расширять классы новыми возможностями трассировки, сохранения объектов, протоколирования ошибок и т.д.
>>> Подробности