gpt4 book ai didi

python - 将 Pydantic 模型传递给另一个模型时复制

转载 作者:行者123 更新时间:2023-12-05 09:27:18 25 4
gpt4 key购买 nike

Pydantic 在将模型传递给另一个模型的构造函数时复制模型。这失败了:

from pydantic import BaseModel

class Child(BaseModel):
pass

class Parent(BaseModel):
child: Child

child = Child()
parent = Parent(child=child)
assert parent.child is child
# Fails

似乎 child 在传递给父级的构造函数时被复制了,因此 childparent.child 的身份不一样.我希望它们与我稍后需要修改 child 的属性相同,并且应该在 parent.child 中看到更改。

如何让 Pydantic 不复制子项?

最佳答案

我自己找到了答案。似乎这是 an issue但它是fixed in a PR通过创建 config option copy_on_model_validation。如果此选项为子项设置为 False,则不会在构造中复制该子项。

这不会复制 child :

from pydantic import BaseModel

class Child(BaseModel):
class Config:
copy_on_model_validation = False

class Parent(BaseModel):
child: Child

child = Child()
parent = Parent(child=child)
assert parent.child is child
# Passes

关于python - 将 Pydantic 模型传递给另一个模型时复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72675162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com