我有蟒蛇壳。Python -V为3.3.2
>>>f = open('data.txt', 'r')
>>>dir(f)
[..."it's ok"...]
>>>help(f.seek)
Help on built-in function seek:
seek(...)为什么我不知道这个BIF的消息?我的蟒蛇壳正确吗?
发布于 2013-09-21 12:00:48
在Python3中对I/O基础结构进行了大修,完全用新对象层次结构替换了旧有的Python2文件对象。
当您以文本模式打开一个文件时,您将得到一个实现io.TextIOBase接口的对象,该对象包装一个io.BufferedIOBase对象,而这个对象反过来包装了一些实现io.RawIOBase接口的东西;前两种方法中的许多方法只是它们包装的对象上的方法的代理。
io.TextIOBase和io.BufferedIOBase类都没有这些代理方法的文档字符串。
您可以使用f.buffer.raw访问原始I/O对象,并在那里获取有关.seek方法的帮助信息:
help(f.buffer.raw.seek)您还可以证明这是一个bug;可以说,代理方法至少应该有一个docstring,声明它们传递对其底层对象的调用,这样您就可以找到原始方法。在这种情况下,指向f.buffer属性的指针将是有用的。你可以在Python问题跟踪器上把这件事办完。
发布于 2013-09-21 11:59:23
您想要的在这里,在io.TextIOBase下面文档。由于某种原因,io.TextIOWrapper (其实例从open返回)不公开其超类中的文档字符串。
这些类是用C实现的,因此不像Python类那样拥有自动显示和传播的文档字符串和签名。很有可能没有人想要这样做,以便在TextIOWrapper中完全实现它。
https://stackoverflow.com/questions/18932084
复制相似问题