gpt4 book ai didi

python - 创建一个设置后不可变的字段

转载 作者:行者123 更新时间:2023-12-05 09:02:53 24 4
gpt4 key购买 nike

是否可以创建一个没有默认值的 Pydantic 字段,并且该值必须在对象实例创建时设置并且从那时起不可变?

例如

from pydantic import BaseModel

class User(BaseModel):
user_id: int
name: str

user = User(user_id=1, name='John')
user.user_id = 2 # raises immutable error

最佳答案

Pydantic 已经有了您想要的选项。你可以customize通过将 allow_mautation 指定为 false 来指定特定字段。如果在实例上分配了该字段,则会引发 TypeError

from pydantic import BaseModel, Field


class User(BaseModel):
user_id: int = Field(..., allow_mutation=False)
name: str

class Config:
validate_assignment = True


user = User(user_id=1, name='John')
user.user_id = 2 # TypeError: "user_id" has allow_mutation set to False and cannot be assigned

关于python - 创建一个设置后不可变的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70648645/

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