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 (Python3.5.3)
我怎么才能修好它?
发布于 2017-08-17 17:52:17
我们已经为即将发布的更新修复了打开的特定情况(不是今天发布的更新--下一次更新),但简而言之,问题是您不知道open将返回什么。在我们的修复中,我们猜测两种可能的类型之一,它们应该涵盖大多数用例。
要立即解决这个问题,最好的选择是将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的代码将与此不同,但是在您获得将这些知识嵌入代码的更新之前,这是您所能做的最好的。
https://stackoverflow.com/questions/45666363
复制相似问题