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

Python 哪种类型的提示表示属性不能为None?,python,typing,pydantic,Python,Typing,Pydantic,在下面的代码中,我需要将my_attr声明为除None之外的任何 我应该用任何交换什么 from pydantic import BaseModel from typing import Any class MyClass(BaseModel): my_attr: Any 要实现这一点,您需要使用验证器,例如: 来自pydantic导入BaseModel,验证程序 类别MyClass(基本模型): 我的母亲:有吗 @验证器('my_attr',always=True) def che

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

我应该用
任何
交换什么

from pydantic import BaseModel
from typing import Any

class MyClass(BaseModel):
    my_attr: Any

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

来自pydantic导入BaseModel,验证程序
类别MyClass(基本模型):
我的母亲:有吗
@验证器('my_attr',always=True)
def check_not_none(cls,值):
断言值不是None,“可能不是None”
返回值
但这不太可能是您真正想要的,您最好使用union并包含一个允许的类型的详尽列表,例如,
union[str,bytes,int,float,Decimal,datetime,date,list,dict,…]


如果您只是想使该字段成为必填字段(但
None
仍然是允许的值),那么在v1.2之后应该可以使用该字段,该版本将在接下来的几天内发布。请参阅。

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

来自pydantic导入BaseModel,验证程序
类别MyClass(基本模型):
我的母亲:有吗
@验证器('my_attr',always=True)
def check_not_none(cls,值):
断言值不是None,“可能不是None”
返回值
但这不太可能是您真正想要的,您最好使用union并包含一个允许的类型的详尽列表,例如,
union[str,bytes,int,float,Decimal,datetime,date,list,dict,…]


如果您只是想使该字段成为必填字段(但
None
仍然是允许的值),那么在v1.2之后应该可以使用该字段,该版本将在接下来的几天内发布。有关提示,请参阅。

@Georgy Thx。这与我的情况很接近,但没有完全反映出来,因为在我的情况下,
pydantic
已经到位,可以提供其他方法排除
None
@Georgy Thx以获取提示。它与我的情况很接近,但没有完全反映出来,因为在我的情况下,
pydantic
已经到位,可以提供其他方法来排除
None