首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python帮助(f.seek)

Python帮助(f.seek)
EN

Stack Overflow用户
提问于 2013-09-21 11:35:27
回答 2查看 447关注 0票数 1

我有蟒蛇壳。Python -V为3.3.2

代码语言:javascript
复制
>>>f = open('data.txt', 'r')
>>>dir(f)
[..."it's ok"...]
>>>help(f.seek)
Help on built-in function seek:

seek(...)

为什么我不知道这个BIF的消息?我的蟒蛇壳正确吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-21 12:00:48

在Python3中对I/O基础结构进行了大修,完全用新对象层次结构替换了旧有的Python2文件对象。

当您以文本模式打开一个文件时,您将得到一个实现io.TextIOBase接口的对象,该对象包装一个io.BufferedIOBase对象,而这个对象反过来包装了一些实现io.RawIOBase接口的东西;前两种方法中的许多方法只是它们包装的对象上的方法的代理。

io.TextIOBaseio.BufferedIOBase类都没有这些代理方法的文档字符串。

您可以使用f.buffer.raw访问原始I/O对象,并在那里获取有关.seek方法的帮助信息:

代码语言:javascript
复制
help(f.buffer.raw.seek)

您还可以证明这是一个bug;可以说,代理方法至少应该有一个docstring,声明它们传递对其底层对象的调用,这样您就可以找到原始方法。在这种情况下,指向f.buffer属性的指针将是有用的。你可以在Python问题跟踪器上把这件事办完。

票数 4
EN

Stack Overflow用户

发布于 2013-09-21 11:59:23

您想要的在这里,在io.TextIOBase下面文档。由于某种原因,io.TextIOWrapper (其实例从open返回)不公开其超类中的文档字符串。

这些类是用C实现的,因此不像Python类那样拥有自动显示和传播的文档字符串和签名。很有可能没有人想要这样做,以便在TextIOWrapper中完全实现它。

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

https://stackoverflow.com/questions/18932084

复制
相关文章

相似问题

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