python新手的几个疑问.请问如何知道别人写的函数的返回类型?

JDD1997 2020-10-01 09:41:12
1 请问python中,如果别人写的函数没有注解,那么如何知道返回数据的类型是什么?
是只能通过阅读这个函数的代码才能知道吗?如果这个函数写的很复杂(很烂)岂不是连确认函数返回类型都是一件很耗时的事情?

2 一个函数可以返回这种类型的数据,也可以返回那种类型的数据,那么作为函数的调用者,是否永远无法完全确认在实际运行时,究竟会得到何种类型的数据呢?

3 如果函数多了,项目大了,那么程序员只能靠脑袋去记忆每个函数的类型吗?

4 java c#等强类型语言,在ide中编写代码时,由于ide可以知道对象的类型,所以可以针对变量类型进行代码补全,比如在一个字符串变量s后面打上"."时,ide会自动列出字符串的各种可用的方法. 在整数型的变量i后面打上"."时也会列出整数型可用的方法. 不同类型自动列出的方法是不一样的,且列出来的肯定是该类型可用的方法.

那么在python中,既然一个变量可以是这种类型也可以是那种类型,ide还能进行准确的代码补全吗?
我在jupyter notebook中发现写了变量名称+"."后按tab可以进行代码补全,这种补全是否可靠呢?它是否只是将python中常用的关键词一股脑列出来让人手动选择而根本没有考虑实际上是否可用呢?

谢谢您的回答.
...全文
369 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cleansely 2020-10-07
  • 打赏
  • 举报
回复
记得有一个库,会通过运行代码,获得类型,并生成代码文件 ,想不起来是啥了
snjaychou 2020-10-04
  • 打赏
  • 举报
回复
可以通过type()函数来确定一个函数的返回值类型。print(type(***)),***处放上函数,变量都可以。
欢乐的小猪 2020-10-03
  • 打赏
  • 举报
回复
1 请问python中,如果别人写的函数没有注解,那么如何知道返回数据的类型是什么? 是只能通过阅读这个函数的代码才能知道吗?如果这个函数写的很复杂(很烂)岂不是连确认函数返回类型都是一件很耗时的事情? 是的。python不像其他的语言一样,定义变量时需要声明变量的类型。在提供方便的同时也降低了代码可读性。
rrrr336 2020-10-01
  • 打赏
  • 举报
回复
最好 当然是阅读理解源码了。 两个内建的函数可能对你有用: 1. type() 2. isinstance() 至于代码补全,好的IDE是可以分析的。个人觉得pycharm做的不错,vs code也还可以。(纯属个人感受) 参考:
def hello(a):
    if a == 0:
        return "beijing"
    else:
        return 1
#test
assert type(hello(1)) is int
assert isinstance(hello(1), int)
assert type(hello(0)) is str
assert isinstance(hello(0), str)

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧