首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python属性错误

Python属性错误
EN

Stack Overflow用户
提问于 2017-05-17 09:20:49
回答 1查看 971关注 0票数 4

我有一个python3.4项目,我最近决定使用类型来更好地理解。

这段代码可以工作,但是使用mypy检查时会弹出一个错误:

代码语言:javascript
复制
import zipfile

def zip_to_txt(zip: typing.IO[bytes]) -> BytesIO:
zz = zipfile.ZipFile(zip)
output = BytesIO()
for line, info in enumerate(zz.filelist):
    date = "%d-%02d-%02d %02d:%02d:%02d" % info.date_time[:6]
    output.write(str.encode("%-46s %s %12d\n" % (info.filename, date, info.file_size)))
output.seek(0, 0)
return output

错误:

PyPreviewGenerator/file_converter.py:170: error: "ZipFile" has no attribute "filelist" (对应于这一行:for line, info in enumerate(zz.filelist):)

但是,当我查看ZipFile类内部时,我可以清楚地看到该属性的存在。

那么,为什么会出现错误呢?有什么办法能解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-17 21:08:39

简而言之,原因是filelist属性没有记录在Typeshed中,即stdlib/各种第三方库的类型存根的集合中。你可以亲眼看到这一点,这里

为什么不包括filelist?嗯,因为它看起来并不是一个API的部分文档。如果您在文档中搜索,您将看到在任何地方都没有提到filelist

相反,您应该调用方法,它完全返回您想要的内容(如果您好奇,请参见在这里实施 )。您会注意到,infolist()确实是在类型中列出

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

https://stackoverflow.com/questions/44020622

复制
相关文章

相似问题

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