因为python是动态语言,变量类型是可变的,所以不管pycharm还是sublime都做不到准确的类型推断。
一个比较取巧的做法是assert
assert isinstance(a, A_type)
a.# 可以补全
补充知识: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不能自动补全第三方库的函数和属性问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。