解决pycharm不能自动补全第三方库的函数和属性问题


Posted in Python onMarch 12, 2020

因为python是动态语言,变量类型是可变的,所以不管pycharm还是sublime都做不到准确的类型推断。

一个比较取巧的做法是assert

assert isinstance(a, A_type)
a.<TAB> # 可以补全

补充知识:pycharm 第三方库函数无代码提示解决方案

问题描述

呃呃呃,想使用urllib库进行HTTP 调用,然后发现有些地方没有代码提示。。。这就很难受了,我根本不清楚API的,你不给我一点提示就过分了呀!!!

from urllib import request


def demo():
  s = request.urlopen('http://www.baidu.com')
  // 没有提示。。。
  s._


if __name__ == '__main__':
  demo()

解决方案

经过一些资料查阅,发现了这些解决方法,仅供参考:

使用isinstance 指定

from urllib import request
from http.client import HTTPResponse


def demo():
  s = request.urlopen('http://www.baidu.com')
  assert isinstance(s, HTTPResponse)
  // 这就有提示了
  s.read()


if __name__ == '__main__':
  demo()

使用类型注解

from urllib import request
from http.client import HTTPResponse


def demo():
  s = request.urlopen('http://www.baidu.com') # type: HTTPResponse
  // 这样也OK!
  s.read()


if __name__ == '__main__':
  demo()

指定类型

from urllib import request
from http.client import HTTPResponse


def demo():
  s = request.urlopen('http://www.baidu.com')
  """:type:HTTPResponse"""
  // 这样也是OK滴!
  s.read()


if __name__ == '__main__':
  demo()

以上这篇解决pycharm不能自动补全第三方库的函数和属性问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python3+PyQt5实现自定义窗口部件Counters
Apr 20 Python
Python实现的计算器功能示例
Apr 26 Python
python调用Matplotlib绘制分布点并且添加标签
May 31 Python
Python使用百度api做人脸对比的方法
Aug 28 Python
python自动结束mysql慢查询会话的实例代码
Oct 27 Python
python基于celery实现异步任务周期任务定时任务
Dec 30 Python
利用Python实现某OA系统的自动定位功能
May 27 Python
python tqdm库的使用
Nov 30 Python
python中PyQuery库用法分享
Jan 15 Python
python实现批量移动文件
Apr 05 Python
利用Matlab绘制各类特殊图形的实例代码
Jul 16 Python
Python序列化模块JSON与Pickle
Jun 05 Python
Matplotlib使用Cursor实现UI定位的示例代码
Mar 12 #Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
Mar 12 #Python
pycharm实现在子类中添加一个父类没有的属性
Mar 12 #Python
Python3 获取文件属性的方式(时间、大小等)
Mar 12 #Python
Python获取对象属性的几种方式小结
Mar 12 #Python
深入浅析Python 命令行模块 Click
Mar 11 #Python
python字典和json.dumps()的遇到的坑分析
Mar 11 #Python
You might like
博士208HAF收音机实习报告
2021/03/02 无线电
一个可以删除字符串中HTML标记的PHP函数
2006/10/09 PHP
mysql5的sql文件导入到mysql4的方法
2008/10/19 PHP
PHP运行模式的深入理解
2013/06/03 PHP
服务器变量 $_SERVER 的深入解析
2013/07/02 PHP
PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法
2016/04/01 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
最新优化收藏到网摘代码(digg,diigo)
2007/02/07 Javascript
分析 JavaScript 中令人困惑的变量赋值
2007/08/13 Javascript
学习ExtJS(二) Button常用方法
2009/10/07 Javascript
一个简单的Ext.XTemplate的实例代码
2012/03/18 Javascript
js无刷新操作table的行和列
2014/03/27 Javascript
JS模拟简易滚动条效果代码(附demo源码)
2016/04/05 Javascript
纯JS前端实现分页代码
2016/06/21 Javascript
JS数组排序方法实例分析
2016/12/16 Javascript
js操作浏览器的参数方法
2017/01/21 Javascript
vue.js实现价格格式化的方法
2017/05/23 Javascript
判断div滑动到底部的scroll实例代码
2017/11/15 Javascript
详解JavaScript 中 if / if...else...替换方式
2018/07/15 Javascript
浅谈v-for 和 v-if 并用时筛选条件方法
2019/11/07 Javascript
浅谈Vue开发人员的7个最好的VSCode扩展
2021/01/20 Vue.js
高性能web服务器框架Tornado简单实现restful接口及开发实例
2014/07/16 Python
python基础教程之序列详解
2014/08/29 Python
python 通过logging写入日志到文件和控制台的实例
2018/04/28 Python
python复制列表时[:]和[::]之间有什么区别
2018/10/16 Python
什么是Python中的匿名函数
2020/06/02 Python
深入浅析Python代码规范性检测
2020/07/31 Python
Python打印不合法的文件名
2020/07/31 Python
CSS3新属性transition-property transform box-shadow实例学习
2013/06/06 HTML / CSS
英国顶级珠宝品牌之家:John Greed
2018/06/09 全球购物
小学美术兴趣小组活动总结
2014/07/07 职场文书
经理岗位职责范本
2015/04/15 职场文书
教你怎么用PyCharm为同一服务器配置多个python解释器
2021/05/31 Python
webpack的移动端适配方案小结
2021/07/25 Javascript
Mysql存储过程、触发器、事件调度器使用入门指南
2022/01/22 MySQL
详解Spring Bean的配置方式与实例化
2022/06/10 Java/Android