哪种类型的提示表示属性不能为无?

2024-04-26 22:21:23 发布

您现在位置:Python中文网/ 问答频道 /正文

在下面的代码中,我需要将my_attr声明为除None之外的任何。你知道吗

我应该用Any换什么?你知道吗

from pydantic import BaseModel
from typing import Any

class MyClass(BaseModel):
    my_attr: Any

Tags: 代码fromimportnone声明typingmymyclass
1条回答
网友
1楼 · 发布于 2024-04-26 22:21:23

要实现这一点,您需要使用验证器,例如:

from pydantic import BaseModel, validator

class MyClass(BaseModel):
    my_attr: Any

    @validator('my_attr', alwasy=True)
    def check_not_none(cls, value):
        assert value is not None, 'may not be None'
        return value

但这不太可能是您真正想要的,您最好使用一个联合并包含一个允许的类型的详尽列表,例如Union[str, bytes, int, float, Decimal, datetime, date, list, dict, ...]。你知道吗

如果您只是想使字段成为必需的(但是仍然允许使用None),那么应该可以在v1.2之后使用,v1.2应该在接下来的几天内发布。见samuelcolvin/pydantic#1031。你知道吗

相关问题 更多 >