a:Optional[str]
,而是支持a:Optional[str] = Field(default=None)
[E1101(no-member), get] Instance of 'FieldInfo' has no 'split' member
from pydantic import BaseModel, Field
from typing import Optional
class A(BaseModel):
a: Optional[str] = Field(default=None)
def get(**kwargs):
return A(**kwargs).a.split(" ")
a:Optional[str] = None
可以解决上面所有问题,但是我的项目有些字段使用Fieldpylint: disable=no-member
如何解决以上问题
您还可以使用
Annotated
来使用 pydantic 的 Field
来装饰您的字段。像这样的东西应该对你有用:
from pydantic import BaseModel, Field
from typing import Annotated, Optional
class A(BaseModel):
a: Annotated[Optional[str], Field(default=None)]
def get(**kwargs):
return A(**kwargs).a.split(" ")
它失败的原因是由于 pylint 如何像这样分析静态属性,使用
Field
的结果作为值而不是我们提供的类型提示。