动态类型的语言用第三方的库,到底如何确定返回值类型?

2023-09-01 00:17:59 +08:00
 voidmnwzp

没怎么用过动态类型语言写项目,最近的项目要用到 openai 相关的 api 接口,直接就动手撸 py 了,但是每次调没有 type Hints 第三方轮子返回的数据又不知道如何用,点进源码也是乱七八糟的各种调用,也没有 ide 提示,这就很麻烦了

3477 次点击
所在节点    Python
32 条回复
flyqie
2023-09-01 10:27:16 +08:00
@wipbssl #18
@lhbc #17

感谢指教,一直以为 python 是弱类型。。

我补补相关知识去。。
pkoukk
2023-09-01 10:29:00 +08:00
看文档,动态类型语言就是这样
Danswerme
2023-09-01 11:45:58 +08:00
看文档,打断点或者打印日志
lhbc
2023-09-01 11:50:12 +08:00
如果一个接口返回的数据,某些字段的类型不确定,动态类型语言不是更容易处理吗?
Go 这种静态类型,想把数据 parse 进结构体要怎么写?
NoOneNoBody
2023-09-01 12:24:15 +08:00
我靠 ide 扩展 pyright
ZeroDu
2023-09-01 12:28:38 +08:00
确实调方法简直是噩梦,根本不知道方法可以传递那些参数。
julyclyde
2023-09-03 13:27:36 +08:00
@oldshensheep 那个声明好像也就仅仅是声明吧,给 IDE 用的。没有运行时意义
zyxbcde
2023-09-03 22:15:21 +08:00
现在正八经写 python 的大部分都会写类型,最起码我自己在使用开源项目时候没有这种烦恼。一个项目想收获 star 自然得让人能看得懂,能用。如果他提供的代码和文档你都看不懂,那最好别直接用这项目。
Gantnocap
2023-09-04 06:58:05 +08:00
我说些建议你参考一下吧

1. 首先要多查看该库的官方文档,文档通常会注明函数和方法的输入参数类型和返回值类型。

2. 如果文档不够明确,可以查看该函数或方法的源码实现,来推断返回值类型。

3. 通过打印输出或判断类型(type())来判断返回结果的类型。

4. 如果返回结果为字典、列表等复杂类型,可以逐层打印输出结果,来查看内部结构。

5. 也可以写一些测试代码,传入不同的参数,来观察返回结果。

6. 如果实在无法确定,可以将返回结果赋值给变量,然后通过变量的属性和方法来推断类型。

7. 最后,如果需要可以给第三方库作者提 issue 或 PR,请求补充类型注释,来改进库的类型提示。

综上,多查看文档、源码,辅以打印输出、测试等方法可以更好地判断 Python 第三方库中函数的返回类型。
fbichijing
2023-09-04 17:05:39 +08:00
有 api 的不是 api 有规定字段对应的格式吗?返回值一般的话同一个字段类型都是固定的吧。如果不同时候调用返回时的类型不一样也太神奇了吧..
Maerd
2023-09-05 09:36:48 +08:00
api 没有规定格式?
zjp
2023-09-06 00:42:40 +08:00
偶尔需要写 bash 搞不定的脚本时会用 Python ,也一直被这个问题困扰。在控制台实时看数据类型能解决一部分,但是带来的新问题是要在源文件和控制台直接来回复制代码😂

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

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

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

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

© 2021 V2EX