pydantic 是一个数据验证库,使用 Python 类型注解来验证输入或转换数据
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
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 常常被用来在类方法中访问类级别的属性或方法