我试过下面的代码。f是_io.TextIOWrapper类型的,但是我找不到关于这种类型的任何帮助信息。虽然确实存在另一种类似类型的io.TextIOWrapper。
>>> f=open("c:\setup.log","r")
>>> type(f)
<class '_io.TextIOWrapper'>
>>> help(_io.TextIOWrapper)
Traceback (most recent call last):
File "<pyshell#204>", line 1, in <module>
help(_io.TextIOWrapper)
NameError: name '_io' is not defined
>>> help(io.TextIOWrapper)
Help on class TextIOWrapper in module io:我的问题是:
_io,我如何使用它?_io和io模块有什么区别?发布于 2014-10-06 01:15:49
_io模块提供了io模块内部使用的C代码。它的来源可以找到这里。您实际上可以分别导入io和_io:
>>> import _io
>>> import io
>>> _io
<module 'io' (built-in)> # The fact that this says io instead of _io is a bug (Issue 18602)
>>> io
<module 'io' from '/usr/lib/python3.4/io.py'>
>>> _io.TextIOWrapper
<type '_io.TextIOWrapper'>这种模式( modulename的C代码是_modulename提供的)实际上用于几个模块-- multiprocessing/_multiprocessing、csv/_csv等。基本上,一个模块有一个用C语言编写的组件。
发布于 2014-10-06 01:15:32
_io是io模块的C实现部分,io是Python部分。
来自PEP8
当用C或C++编写的扩展模块附带一个提供更高级别(例如更面向对象的)接口的Python模块时,C/C++模块有一个前导下划线(例如
_socket)。
https://stackoverflow.com/questions/26208863
复制相似问题