python-3.x 为什么Pydantic将可选值计算在None之后或计算为None?

nuypyhwy  于 2023-01-14  发布在  Python
关注(0)|答案(1)|浏览(162)

我有一个方法,它根据用户的成功身份验证返回类的示例。

account: Optional[Account] = await Account.authenticate(email, password)
return account or account.dict()

据我所知,由于没有类型是虚假的任何帐户后出现的or关键字应该是Account类型。
任何关于为什么这是报告错误的见解将非常感谢。
我已经在Pylance的GitHub问题中查找了其他示例,以查找在None之后或被报告为None的值。

xlpyo6sf

xlpyo6sf1#

您的IDE正确。

考虑当authenticate()方法返回None时会发生什么。

account or account.dict()

它不会返回account,正如您所说的,因为account是falsy,但是,您随后调用了None.dict(),这将是一个键入错误。
您应该将account.dict()更改为某个不调用None的示例方法的值,但该值是什么取决于问题中没有提供的上下文。

相关问题