Pycharm中第三方模块无代码提示问题解决

刚才使用xlrd模块,发现Pycharm中没有代码提示(很奇怪,在公司环境中使用是有提示的),由于对该模块使用不熟练,无法继续编码,很苦恼。

上网搜集了一番资料,有说更改源码的,也有说使用assert强制指定类型。试了一下,使用assert”强制指定类型“确实有效。

那么问题来了:

1. 如何断言当前的类型是导入模块的哪一个实例?

2. 使用断言后Pycharm就可以代码提示了,为什么?

在本例中,我们可以在Pycharm查看sheets()方法源码位于名为book.py的源码中:

同样的方法,很快就会识别到sheets()方法是通过方法get_sheet()获取,找到get_sheet()方法,显然,它返回的是一个类(sheet.Sheet)的实例:

所以,代码中的assert isinstance(sheet, xlrd.sheet.Sheet)表达式其实是让Pycharm提前”知道“sheet是xlrd.sheet.Sheet的实例,sheet拥有Sheet类的属性和方法,所以后续相关的代码Pycharm可以提示。

由此,问题1、2也就不难理解。

欢迎补充其他解决方案或对表述指正。

全部评论

相关推荐

专心打鱼:互联网搬运工,贴子都要偷
点赞 评论 收藏
分享
10-30 10:16
南京大学 Java
龚至诚:给南大✌️跪了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务