作为开发人员,我们已经习惯了IDE的智能提示,针对PyCharm无代码提示整理下解决方案。
PyCharm无代码提示大概可以归为3类
Python内置语法无智能提示
通过pip安装的第三方库,导入后代码无提示
第三方库函数代码无提示 其中问题最多的可能就是这种
下面咱们就针对这3类问题说下解决方案
环境:Mac、PyCharm 2022.3.3 、Python3.11.1
1、Python内置语法无智能提示
复现:准备导入包“输入i”无只能提示
![](https://aitechtogether.com/wp-content/uploads/2023/05/6396a457-283a-45af-9ad8-4ab5fe5788f0.webp)
解决:File->Power Save Mode 取消勾选
![](https://aitechtogether.com/wp-content/uploads/2023/05/1dd8950d-947c-4882-969e-3bfdcb3b7bf3.webp)
解决后效果:
![](https://aitechtogether.com/wp-content/uploads/2023/05/a705fc66-9d84-4911-9f74-e67a2eeefdc4.webp)
2、通过pip安装的第三方库,导入后代码无提示
这种是因为安装的第三方库没有加入到当前环境中,解决办法:PyCharm->References->Project:python->Python Interpreter
![](https://aitechtogether.com/wp-content/uploads/2023/05/f8002ac3-80a7-4551-a997-6327bbcc4f86.webp)
![](https://aitechtogether.com/wp-content/uploads/2023/05/bba630f8-86fb-4176-b2e1-9f6775d182cd.webp)
![](https://aitechtogether.com/wp-content/uploads/2023/05/f1339157-789d-498b-a991-a59722df6542.webp)
![](https://aitechtogether.com/wp-content/uploads/2023/05/96ec69ea-59f5-48a9-9591-f41616b318f2.webp)
3、第三方库函数代码无提示(重要)
复现:我这里以urllib库读取网页内容为例,在通过response调用read()函数时无提示。
![](https://aitechtogether.com/wp-content/uploads/2023/05/a42dfef1-d266-4acf-9e0e-2b3554ddfaca.webp)
代码:
import urllib.request
url = "http://www.baidu.com/"
response = urllib.request.urlopen(url)
# 读取数据
response.
解决办法:
前提是知道变量的类型,要获取变量类型,我们可以用type()函数提前打印下类型
![](https://aitechtogether.com/wp-content/uploads/2023/05/b9a7b710-f0cb-4ea5-aa1d-d97c27ba1255.webp)
①、通过isinstance()函数
isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。
代码:
# 记得导入包
import http.client
import urllib.request
url = "http://www.baidu.com/"
response = urllib.request.urlopen(url)
# 通过isinstance() 增加智能提示
assert isinstance(response, http.client.HTTPResponse)
response.rea
![](https://aitechtogether.com/wp-content/uploads/2023/05/693c7432-c149-4fcb-b352-634eb614d8d2.webp)
②、使用类型注解
代码:
# 记得导入包
import http.client
import urllib.request
url = "http://www.baidu.com/"
# 使用类型注解
response = urllib.request.urlopen(url) # type: http.client.HTTPResponse
response.
![](https://aitechtogether.com/wp-content/uploads/2023/05/5f41c19c-3ca0-46e6-817c-96d130fb0b81.webp)
③、通过注释指定类型
代码:
# 记得导入包
import http.client
import urllib.request
url = "http://www.baidu.com/"
response = urllib.request.urlopen(url)
"""
:type:http.client.HTTPResponse
"""
response.r
![](https://aitechtogether.com/wp-content/uploads/2023/05/6225a7b2-7c53-4220-af3e-59f75fb35744.webp)
最后:虽然给出了3中解决方案,但是都需要人为增加代码,没有找到更好的方法,如果朋友们无需增加代码的方案,可以留言告知下,感谢!
文章出处登录后可见!
已经登录?立即刷新