首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不适用于内置功能的PTVS

不适用于内置功能的PTVS
EN

Stack Overflow用户
提问于 2017-08-14 01:30:06
回答 1查看 67关注 0票数 0
代码语言:javascript
复制
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)

我怎么才能修好它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-17 17:52:17

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

要立即解决这个问题,最好的选择是将open的结果赋值给变量,并使用assert语句强制将其强制到特定的类型。例如:

代码语言:javascript
复制
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的代码将与此不同,但是在您获得将这些知识嵌入代码的更新之前,这是您所能做的最好的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45666363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档