PTVS 智能感知不适用于内置功能


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(

我该如何解决它?

我们已经为即将发布的更新修复了打开的特定情况(不是今天发布的更新 - 下一个(,但简而言之,问题是你并不真正知道什么开放会返回。在我们的修复中,我们猜测两种可能的类型之一,它们应该涵盖大多数用例。

要立即解决此问题,最好的选择是将 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 的代码与此不同,但在您可以获得更新并将这些知识嵌入到我们的代码中之前,这是您能做的最好的事情。

最新更新