1. 程式人生 > 程式設計 >解決pycharm不能自動補全第三方庫的函式和屬性問題

解決pycharm不能自動補全第三方庫的函式和屬性問題

因為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不能自動補全第三方庫的函式和屬性問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。