Python 如何使用mixin与小马orm共享属性

Python 如何使用mixin与小马orm共享属性,python,inheritance,mixins,ponyorm,Python,Inheritance,Mixins,Ponyorm,有没有办法共享pony.orm中实体的属性定义? 我有两个彼此不相关的类,但我希望它们具有相同的属性。目前,我将它们从一个类复制粘贴到另一个类,但一旦我更改了措辞或添加/删除属性,这需要大量的手动工作 有什么办法可以改变这种状况吗 A类(数据库实体): primary:str=orm.PrimaryKey(str) classa_key1:str=orm.Required(str) classa_key2:str=orm.Required(str) classa_key3:str=orm.Req

有没有办法共享pony.orm中实体的属性定义? 我有两个彼此不相关的类,但我希望它们具有相同的属性。目前,我将它们从一个类复制粘贴到另一个类,但一旦我更改了措辞或添加/删除属性,这需要大量的手动工作

有什么办法可以改变这种状况吗

A类(数据库实体):
primary:str=orm.PrimaryKey(str)
classa_key1:str=orm.Required(str)
classa_key2:str=orm.Required(str)
classa_key3:str=orm.Required(str)
...
某些关键字1:str=orm.Required(str)
某些关键字2:str=orm.Required(str)
...
B类(数据库实体):
primary:str=orm.PrimaryKey(str)
classb_key1:str=orm.Required(str)
classb_key2:str=orm.Required(str)
classb_key3:str=orm.Required(str)
...
某些关键字1:str=orm.Required(str)
某些关键字2:str=orm.Required(str)
...
像这样的事情

类SomeKeyMixin:
某些关键字1:str=orm.Required(str)
某些关键字2:str=orm.Required(str)
...
类ClassA(db.Entity,SomeKeyMixin):
primary:str=orm.PrimaryKey(str)
classa_key1:str=orm.Required(str)
classa_key2:str=orm.Required(str)
classa_key3:str=orm.Required(str)
...
类B(db.Entity,SomeKeyMixin):
primary:str=orm.PrimaryKey(str)
classb_key1:str=orm.Required(str)
classb_key2:str=orm.Required(str)
classb_key3:str=orm.Required(str)
...

正常继承不起作用,因为这会将所有类放在同一个表中,这是不需要的。

不幸的是,使用小马似乎不可能实现您想要的。这就是他们在文档中所说的。它们只提供了一种实现继承的方法,即将所有内容放在一个表中


我不能专门针对pony.orm发表评论,但这确实是mixin通常的工作方式。它是一个单独的类,具有某种基本配置,您可以将其作为要从中继承的类的参数包含。您尝试过这个实现吗?代码运行时没有错误,但是在访问和创建数据库时,pony不包含字段。但是很明显我想要db映射你看过元类了吗?我认为这是将附加字段放入类“
\uuuu dict\uuuu