【发布时间】:2021-05-29 20:28:38
【问题描述】:
是否可以创建 pydantic 模型的弱引用?
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)
我收到以下错误:
cannot create weak reference to 'JEdgeModel' object
有没有办法达到同样的效果?
【问题讨论】:
-
嗨:你能解释一下上下文吗?为什么这里需要弱引用?
-
您需要将必填字段
__weakref__添加到BaseModel.__slots__以使类支持弱引用。 -
@DanD。谢谢,如果你回答我可以将其标记为解决方案
-
@jossefaz m 创建 PyQt 应用程序,我需要传递我需要更新的模型的引用。我知道我可以在新窗口中更新模型的副本并将其发回,但是创建相同的弱引用可以为我节省一些麻烦。我不确定解决这样的问题是否是一个好习惯!
标签: python weak-references pydantic