Скажем, у меня есть класс с именем MyDocument
, который является классом, унаследованным от некоторого ORM (на самом деле это mongoengine.DynamicDocument
), и, унаследовав от этого ORM, за ним уже произошли некоторые метаклассы c. .
import mongoengine
class MyDocument(mongoengine.DynamicDocument):
....
Теперь я хочу сделать копию класса,
подход empty inheritance
мне не подходит, потому что mongoengine.DynamicDocument
имеет некоторые нежелательное поведение за наследованием.
выполнение глубокой копии MyDocument
(после создания класса) также не то, что я хочу, потому что уже какой-то мета-класс black magi c произошел, когда класс MyDocument
создан, поэтому просто копировать его не имеет смысла (например, имя таблицы, созданной метапрограммированием, не меняется)
Есть ли мета-класс, чтобы скопировать класс , как если бы я просто снова скопировал код и изменил имя класса ? (возможно, это неправильный способ использования mongoengine
, тем не менее, мне интересно узнать о самом python3, как использовать мета-класс для этого)