首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Pydantic使用默认函数设置属性

Pydantic 是一个 Python 数据验证库,它基于类型注解和数据验证,可以让你轻松地将 Python 对象转换为 JSON 格式,并自动验证数据是否符合定义的模型

以下是如何使用 Pydantic 设置带有默认函数的属性的示例:

代码语言:javascript
复制
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_dateUser 实例时,join_date 将自动设置为默认值。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券