首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >'_io‘和'io’有什么区别?

'_io‘和'io’有什么区别?
EN

Stack Overflow用户
提问于 2014-10-06 01:07:38
回答 2查看 2.1K关注 0票数 16

我试过下面的代码。f_io.TextIOWrapper类型的,但是我找不到关于这种类型的任何帮助信息。虽然确实存在另一种类似类型的io.TextIOWrapper

代码语言:javascript
复制
>>> 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,我如何使用它?
  • _ioio模块有什么区别?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-06 01:15:49

_io模块提供了io模块内部使用的C代码。它的来源可以找到这里。您实际上可以分别导入io_io

代码语言:javascript
复制
>>> 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/_multiprocessingcsv/_csv等。基本上,一个模块有一个用C语言编写的组件。

票数 17
EN

Stack Overflow用户

发布于 2014-10-06 01:15:32

_ioio模块的C实现部分,io是Python部分。

来自PEP8

当用C或C++编写的扩展模块附带一个提供更高级别(例如更面向对象的)接口的Python模块时,C/C++模块有一个前导下划线(例如_socket)。

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

https://stackoverflow.com/questions/26208863

复制
相关文章

相似问题

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