发现问题
PyCharm在使用openpyxl第三方模块时,通过from openpyxl import load_workbook 导入具体函数,wb变量类型是openpyxl.workbook.workbook.Workbook,具体代码如下:
from openpyxl import load_workbook
wb = load_workbook('load_work.xlsx')
sheet = wb.worksheets[0]
print(wb, type(wb))
# --输出--
# <openpyxl.workbook.workbook.Workbook object at 0x10b0d5d50> <class 'openpyxl.workbook.workbook.Workbook'>
wb.worksheets[0]按道理可以通过代码提示输入,但是,事与愿违的是按下“wb.”时,想要的方法提示统统没有,就是下图这个样子:
理想应该是这样的:
解决方法
补充说明(2022.11.24更新)
在使用了一段时间(2022.11.05更新)的方法后,发现自从忽视了pyi格式的文件后,一些简单的代码提示就不再提示了,鱼和熊掌不可兼得的感想,最后妥协了,使用 类型注解 的方法。
一步到位解决代码提示问题(2022.11.05更新)
Pycharm一步到位解决第三方库导入无代码提示问题
Mac:Preferences(快捷键cmd+,)-> Editor -> File Types -> Ignored and Folders -> + -> *.pyi
找了一些博客,目前有三种解决方法(均测试过可行)如下:
写在最前面的加粗,三种方法的大前提就是导入类或者类所在的模块
解释说明:from openpyxl import Workbook 就是这条导入语句,将这个类Workbook导入进来,导入方法不是只有这个,也可以导入from openpyxl.workbook import workbook或者 from openpyxl import workbook。言而总之,就是把类Workbook通过导入给到文件。
1. 类型注解
(网上找来的名字)格式 # type: [类型路径]
可以是这样(注意每张图的区别)
或者这样
那么此处有点疑惑,类Workbook只定义了一个地方,🐦有多个使用方法。实际上,抓源头都是openpyxl.workbook.workbook.Workbook,原因是写“轮子”(也就是包“openpyxl”)的大佬在openpyxl/init.py文件中都写好了,看下图,快捷键cmd+左键 划线的英文
跳转过来,就可以看到原因了。
2. 指定类型
(网上找来的名字)格式 ‘’’ :type: [类型路径]‘’’
个人浅觉,与第一种方法差不多,费点键盘。
3. isinstance指定
这个函数是用来判断2个参数是否是同类型的。光写这个自然不够,看图秒懂:
问题原因
开始找原因,以下都是个人觉得,已解决,设置问题,请看问题解决板块
IDE(PyCharm)不知道wb这个变量是什么类型,那就没有提示了,所以需要指定下类型去告知IDE这个是Workbook类型数据。
但是呢,鄙人不光使用PyCharm编程,还有VScode(两款软件各有特点,这里只说明现象),两款软件均使用Python解释器python 3.11(最新版),同样的代码在VScode不需要添加指定类型就有提示,所以怀疑是个人设置IDE仍存在问题,目前还没有查到具体的设置方法,查到后再做补充(了解PyCharm设置代码提示的大佬可以留言下,感谢大佬)。以下是VScode的使用截图:
文章出处登录后可见!