在我拥有的一些 Python 模型类中寻找对自定义模型属性列表的轻松访问。我使用 MongoEngine 作为我的 ORM,但问题是一般继承和 OOP。
具体来说,我希望能够从我将在所有模型类中继承的 Mixin 类中的方法访问自定义模型属性。
考虑以下类结构:
class ModelMixin(object):
def get_copy(self):
"""
I'd like this to return a model object with only the custom fields
copied. For the City object below, it would run code equivalent to:
city_copy = City()
city_copy.name = self.name
city_copy.state = self.state
city_copy.popluation = self.population
return city_copy
"""
class City(BaseModel, ModelMixin):
name = orm_library.StringField()
state = orm_library.StringField()
population = orm_library.IntField()
这将允许以下操作:
>>> new_york = City(name="New York", state="NY", population="13000000")
>>> new_york_copy = new_york.get_copy()
但是,它必须适用于任意模型。不知何故,它必须确定在子类中定义了哪些自定义属性,实例化该子类的实例,并仅复制那些自定义属性,而不复制父 BaseModel 类(具有大量随机里面的东西我不关心。
有谁知道我怎么能做到这一点?