я изучаю mongoengine, и я хотел сделать класс "EmbeddedDocument" динамически, поэтому я делаю это
def custom(cls):
cls = type( cls.__name__, (EmbeddedDocument,), cls.__dict__.copy() )
cls.a = FloatField(required=True)
cls.b = FloatField(required=True)
return cls
A = custom( A )
и попробовал его на некоторых классах, но он не выполняет инициализацию или суммирование базового класса
в базовом документе
def __init__(self, **values):
self._data = {}
# Assign initial values to instance
for attr_name, attr_value in self._fields.items():
if attr_name in values:
setattr(self, attr_name, values.pop(attr_name))
else:
# Use default value if present
value = getattr(self, attr_name, None)
setattr(self, attr_name, value)
но это никогда не используется, таким образом никогда не устанавливая ._data и выдавая мне ошибки. как мне это сделать?
Обновление:
Я играю с ним больше, и, похоже, есть проблема с классами с init методами. может мне нужно сделать это явным?