溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

解決pycharm不能自動(dòng)補(bǔ)全第三方庫(kù)的函數(shù)和屬性問(wèn)題

發(fā)布時(shí)間:2020-09-08 16:42:35 來(lái)源:腳本之家 閱讀:357 作者:lingtianyulong 欄目:開(kāi)發(fā)技術(shù)

因?yàn)閜ython是動(dòng)態(tài)語(yǔ)言,變量類(lèi)型是可變的,所以不管pycharm還是sublime都做不到準(zhǔn)確的類(lèi)型推斷。

一個(gè)比較取巧的做法是assert

assert isinstance(a, A_type)
a.<TAB> # 可以補(bǔ)全

補(bǔ)充知識(shí):pycharm 第三方庫(kù)函數(shù)無(wú)代碼提示解決方案

問(wèn)題描述

呃呃呃,想使用urllib庫(kù)進(jìn)行HTTP 調(diào)用,然后發(fā)現(xiàn)有些地方?jīng)]有代碼提示。。。這就很難受了,我根本不清楚API的,你不給我一點(diǎn)提示就過(guò)分了呀?。?!

from urllib import request


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


if __name__ == '__main__':
  demo()

解決方案

經(jīng)過(guò)一些資料查閱,發(fā)現(xiàn)了這些解決方法,僅供參考:

使用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()

使用類(lèi)型注解

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()

指定類(lèi)型

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不能自動(dòng)補(bǔ)全第三方庫(kù)的函數(shù)和屬性問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI