程序运行时怎么能做到如果返回值和注解中的类型不匹配则报错?

2023-07-05 15:25:23 +08:00
 frankyzf

不熟悉 python ,想问下程序运行时怎么能做到如果返回值和注解中的类型不匹配则报错?

现在的情况如下:一个方法返回值有类型注解(比如 List<float>),具体的功能是从一个 API 里拿到后进行加工后返回。麻烦问下有什么插件或方法能做到在运行时,如果返回值的类型和类型注解不匹配 (比如返回值是 List<List<float>>)则报错?先谢谢了。

1110 次点击
所在节点    Python
3 条回复
lsongzhi
2023-07-05 16:02:03 +08:00
运行时类型检查用 pydantic ,https://github.com/pydantic/pydantic
lisongeee
2023-07-05 18:07:05 +08:00
应该是 https://docs.pydantic.dev/latest/usage/validation_decorator/

使用它的 `@validate_call` 装饰器放在你需要类型校验的函数上就行
frankyzf
2023-07-05 19:52:31 +08:00
谢谢 @lisongeee @lsongzhi 的回复,我试下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/954307

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX