2017-08-14 63 views
0
class Class: 

def __init__(self, path): 

    self._path = path 
    string = open(self._path, 'r'). #HERE 

工作時我嘗試鍵入閱讀() INTELLISENSE說沒有完工
但是,我知道open()函數返回文件對象,它具有read()函數。輸入點後,我想看到所有支持的功能。PTVS智能感知不適合內置功能

PyCharm顯示我推薦的函數列表,但PTVS不支持。 我想知道這是PTVS中的偶然事件,或者只發生在我身上。

我當前的Python環境是蟒蛇4.3.0(Python的3.5.3)

我怎樣才能解決這個問題?

回答

0

我們已經修復了我們即將到來的更新(不是今天發佈的更新版本 - 下一個更新版本)的具體情況,但總之問題是您並不真正知道將要返回的東西是什麼。在我們的修復中,我們猜想兩種可能的類型之一,它們應該覆蓋大多數用例。

要現在解決它,最好的選擇是將open的結果賦給變量,並使用assert語句將其強制賦予某種類型。例如:

f = open(self._path, 'r') 
import io 
assert isinstance(f, io.TextIOWrapper) 

f = open(self._path, 'rb') 
import io 
assert isinstance(f, io.BufferedIOBase) 

注意,如果變量不是預期的類型,並使用Python 2的代碼將是與此不同的代碼現在將會失敗,但直到你能得到,我們嵌入此更新知識融入我們的代碼中,這是您可以做的最好的。