我正在处理一个特殊情况,我试图模仿模型类的django感觉:
class packet(models.packet):
field1 = models.IntField()
field2 = models.IntField()
使用元语法有很多背景接口,但过度的想法是允许用户与字段进行交互,如下所示:
p = packet()
p.field1 = 12
p.field1 == 12 # true
虽然仍未妥协字段类型:
isinstance(p.field1, models.IntField) # true
我遇到的问题是两个packet
个对象共享相同的Fields
,因为它们属于类属性:
p1 = packet()
p2 = packet()
p1.field1 = 12
p2.field2 = 14
p1 is p2 # false
p1.field1 is p2.field1 # true
如何为每个新的父对象实例化一个新的属性对象?
为了更好的上下文,请随意浏览source here