【问题标题】:PTVS IntelliSense not working for Built-in FunctionPTVS IntelliSense 不适用于内置功能
【发布时间】:2017-08-18 01:52:17
【问题描述】:
class Class:

def __init__(self, path):

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

当我尝试键入 read() 时,intelliSense 说 没有完成
但是,我知道 open() 函数返回 file object,它具有 read() 函数。我想在输入一个点后查看所有支持的功能。

PyCharm 向我显示推荐功能列表,但 PTVS 不支持。 我想知道这是 PTVS 中的偶然事件还是仅发生在我身上。

我目前的 Python 环境是 Anaconda 4.3.0 (Python 3.5.3)

我该如何解决?

【问题讨论】:

    标签: python python-3.x anaconda intellisense ptvs


    【解决方案1】:

    我们已经为即将到来的更新修复了 open 的具体情况(不是今天发布的更新 - 下一个更新),但简而言之,问题是您并不真正知道 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 的代码将与此不同,但在您获得我们将这些知识嵌入代码的更新之前,它是尽你所能。

    【讨论】:

      猜你喜欢
      • 2014-04-26
      • 2021-09-11
      • 2015-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-31
      • 2014-10-12
      • 1970-01-01
      相关资源
      最近更新 更多