PTVS IntelliSense 不适用于内置功能
PTVS IntelliSense not working for Built-in Function
class Class:
def __init__(self, path):
self._path = path
string = open(self._path, 'r'). #HERE
当我尝试键入 read() 时,智能感知显示 没有完成。
但是,我知道 open() 函数 returns file object,它有 read() 功能。我想在输入一个点后查看所有支持的功能。
PyCharm给我推荐的功能列表,但是PTVS不支持。
我想知道这是PTVS中的偶然事件还是只发生在我身上。
我当前的 Python 环境是 Anaconda 4.3.0 (Python 3.5.3)
我该如何解决?
我们已经为即将到来的更新修复了 open 的具体情况(不是今天发布的那个 - 下一个),但简而言之,问题是你真的不知道 open 会发生什么return。在我们的修复中,我们猜测应该涵盖大多数用例的两种可能类型之一。
要立即解决这个问题,最好的选择是将 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 的代码将与此不同,但直到您获得我们嵌入此知识的更新在我们的代码中,这是你能做的最好的。
class Class:
def __init__(self, path):
self._path = path
string = open(self._path, 'r'). #HERE
当我尝试键入 read() 时,智能感知显示 没有完成。
但是,我知道 open() 函数 returns file object,它有 read() 功能。我想在输入一个点后查看所有支持的功能。
PyCharm给我推荐的功能列表,但是PTVS不支持。 我想知道这是PTVS中的偶然事件还是只发生在我身上。
我当前的 Python 环境是 Anaconda 4.3.0 (Python 3.5.3)
我该如何解决?
我们已经为即将到来的更新修复了 open 的具体情况(不是今天发布的那个 - 下一个),但简而言之,问题是你真的不知道 open 会发生什么return。在我们的修复中,我们猜测应该涵盖大多数用例的两种可能类型之一。
要立即解决这个问题,最好的选择是将 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 的代码将与此不同,但直到您获得我们嵌入此知识的更新在我们的代码中,这是你能做的最好的。