Pydantic 是一个 Python 数据验证库,它基于类型注解和数据验证,可以让你轻松地将 Python 对象转换为 JSON 格式,并自动验证数据是否符合定义的模型
以下是如何使用 Pydantic 设置带有默认函数的属性的示例:
from datetime import datetime, timedelta
from pydantic import BaseModel
class User(BaseModel):
id: int
name: str
join_date: datetime = None
@classmethod
def get_default_join_date(cls):
return datetime.now() - timedelta(days=180)
def __init__(__pydantic_self__, **data: any):
super().__init__(**data)
if __pydantic_self__.join_date is None:
__pydantic_self__.join_date = cls.get_default_join_date()
# 创建一个用户实例,设置 `join_date` 为默认值
user1 = User(id=1, name="Alice")
print(user1) # 输出:User id=1 name='Alice' join_date=datetime.datetime(2021, 9, 2, 12, 38, 27.678633)
# 创建另一个用户实例,显式设置 `join_date`
user2 = User(id=2, name="Bob", join_date=datetime.now())
print(user2) # 输出:User id=2 name='Bob' join_date=datetime.datetime(2021, 9, 2, 12, 38, 27.678633)
在这个例子中,我们定义了一个名为 User
的 Pydantic 模型,其中包含一个名为 join_date
的属性,默认值设为 None
。我们还定义了一个类方法 get_default_join_date
,它返回一个默认的 join_date
值。在 User
类的 __init__
方法中,我们检查 join_date
是否为 None
,如果是,则将其设置为 get_default_join_date()
的返回值。
当我们创建一个没有提供 join_date
的 User
实例时,join_date
将自动设置为默认值。
领取专属 10元无门槛券
手把手带您无忧上云