class Class:
def __init__(self, path):
self._path = path
string = open(self._path, 'r'). #HERE
当我尝试输入 read()时,intelliSense说没有完成。
但是,我知道 open()函数返回文件对象,它具有 read()功能。我想在输入一个点后看到所有支持的功能。
PyCharm向我显示推荐的功能列表,但PTVS不支持。 我想知道这是PTVS中的随意事物,或者只发生在我身上。
我目前的Python环境是Anaconda 4.3.0(Python 3.5.3)
我该如何解决?
答案 0 :(得分: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的代码与此不同,您的代码现在将失败,但是直到您可以获得我们将此知识嵌入到代码中的更新,它是你能做的最好。