Pydantic 中 validator 和 validators 的区别

前言

pydantic 是一个数据验证库,使用 Python 类型注解来验证输入或转换数据

开始

  1. validator 是 pydantic 的一个装饰器,它用于在数据模型上创建自定义验证函数。这些验证函数会在 Pydantic 模型的字段被初始化时运行。例如:
from pydantic import BaseModel, validator

class MyModel(BaseModel):
    num: str

    @validator('num')
    def check_field(cls, v):
        if v < 0:
            raise ValueError('field must be a positive number')
        # assert v >= 0, 'field must be a positive number'
        return v
  1. validators 是 pydantic 模型的一个属性,它包含了所有的字段验证器。你可以使用 validators 属性来检查或调试你的模型验证器。例如,你可以像这样打印出模型的所有验证器:
print(MyModel.__validators__)

注意,validators 属性通常只在开发或调试时使用,通常不会在实际的应用代码中使用

注意

validator 在 Pydantic v2 中已被弃用,应使用 field_validator。
field_validator

其他

在 Python 中,cls 是一个常用的约定,用于表示类本身。它在类方法中被用作第一个参数,类似于实例方法中的 self 参数

类方法是绑定到类的方法,而不是类的实例。它们可以通过类直接调用,也可以通过类的实例调用。类方法的第一个参数(通常命名为 cls)是自动传递的,引用的就是类本身

这是一个例子:

class MyClass:
    @classmethod
    def my_class_method(cls):
        print(f'This method is called on the class: {
     cls}')

# 调用类方法
MyClass.my_class_method()

在这个例子中,my_class_method 是一个类方法,它接收一个参数 cls,这个参数引用的就是 MyClass 这个类。所以,cls 常常被用来在类方法中访问类级别的属性或方法

相关推荐

  1. Pydantic validator validators 区别

    2023-12-16 11:28:05       54 阅读
  2. pydantic.errors.PydanticUserError: If you use `@root_validator`

    2023-12-16 11:28:05       32 阅读
  3. spring@validate注解使用

    2023-12-16 11:28:05       68 阅读
  4. Hutool工具包Validator类数据校验

    2023-12-16 11:28:05       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-16 11:28:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-16 11:28:05       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-16 11:28:05       82 阅读
  4. Python语言-面向对象

    2023-12-16 11:28:05       91 阅读

热门阅读

  1. 短地址漏洞

    2023-12-16 11:28:05       52 阅读
  2. 2024 年科技领域的重大创新思想

    2023-12-16 11:28:05       96 阅读
  3. 在 docker 中安装 sam

    2023-12-16 11:28:05       56 阅读
  4. flutter Pageview组件

    2023-12-16 11:28:05       58 阅读
  5. 4-Docker命令之docker images

    2023-12-16 11:28:05       59 阅读
  6. ZooKeeper中bin目录4个脚本执行文件详解

    2023-12-16 11:28:05       46 阅读
  7. 在 C++ 中局部变量和全局变量

    2023-12-16 11:28:05       66 阅读
  8. LoRA(Low-Rank Adaptation)

    2023-12-16 11:28:05       57 阅读
  9. LeetCode 2132. 用邮票贴满网格图

    2023-12-16 11:28:05       56 阅读
  10. Unix环境高级编程-学习-03-XSI-IPC之消息队列

    2023-12-16 11:28:05       47 阅读