Python 创建从weakref到pydantic的模型
有可能创建一个pydantic模型的weakref吗Python 创建从weakref到pydantic的模型,python,weak-references,pydantic,Python,Weak References,Pydantic,有可能创建一个pydantic模型的weakref吗 from pydantic import BaseModel from uuid import UUID class JEdgeModel(BaseModel): uid: UUID startSocket: UUID destnSocket: UUID a = JEdgeModel(uid='abd6fc3f882544f5b75661c92fccbd0d', startSocket='abd6fc3f88254
from pydantic import BaseModel
from uuid import UUID
class JEdgeModel(BaseModel):
uid: UUID
startSocket: UUID
destnSocket: UUID
a = JEdgeModel(uid='abd6fc3f882544f5b75661c92fccbd0d', startSocket='abd6fc3f882544f5b75661c92fccbd0d', destnSocket='abd6fc3f882544f5b75661c92fccbd0d')
wk = weakref.ref(a)
我得到以下错误:
无法创建对“JEdgeModel”对象的弱引用
有没有办法达到同样的效果?来自
如果每个实例没有weakref变量,则定义插槽的类不支持对其实例的弱引用。如果需要弱引用支持,则将“weakref”添加到slot声明中的字符串序列中
因此,只需将\uuuuuwakref\uuuuu
添加到模型中的\uuuuuuu插槽中
class-JEdgeModel(BaseModel):
__槽位=
uid:UUID
startSocket:UUID
去库存:UUID
a=杰吉模型(
uid='abd6fc3f882544f5b75661c92fccbd0d',
startSocket='abd6fc3f882544f5b75661c92fccbd0d',
去库存='abd6fc3f882544f5b75661c92fccbd0d',
)
wk=weakref.ref(a)
Hi:你能再解释一下上下文吗?为什么在这里需要弱引用?您需要将必填字段\uuuuuwakref\uuuuu
添加到BaseModel.\uuuuu slots\uuuu
以使类支持弱引用。@DanD。谢谢,如果你回答,我可以把它标记为sollution@jossefaz在创建PyQt应用程序时,我需要传递需要更新的模型的ref。我知道我可以在新窗口中更新模型的副本并将其发送回,但创建相同的weakref可以为我节省一些麻烦。我不确定这样解决问题是否是一种好的做法!