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

262 天前
 voidmnwzp

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

3235 次点击
所在节点    Python
32 条回复
flyqie
262 天前
@wipbssl #18
@lhbc #17

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

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

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

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

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

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

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

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

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

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

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

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

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

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

© 2021 V2EX