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 常常被用来在类方法中访问类级别的属性或方法

你可能感兴趣的:(python,开发语言)