繁体   English   中英

Python中的“ _modname”内置模块是什么? 它们是用来干什么的?

[英]What are the '_modname' built-in modules in Python? What are they used for?

我可能会从文档中丢失一些内容,但看不到找到它,并且使用Google谷歌搜索并不是一件小事。

在查看importlib模块时,我注意到它使用import _imp语句来导入_imp以获得某些其他功能。 显然,Python带有这些_<modname>模块,这些模块是可导入的并且(未经测试)可用。

使用ipython ,下划线模块的列表显示出它们很多:

In [2]: import _
__future__           _elementtree         _sha512
_ast                 _functools           _signal
_bisect              _hashlib             _sitebuiltins
_bootlocale          _heapq               _socket
_bz2                 _imp                 _sqlite3

并且列表继续。 这些模块当然是可导入的,并且显然具有功能:

In [2]: import _imp

In [3]: _imp
Out[3]: <module '_imp' (built-in)>

考虑到PEP 8我认为它们是给定模块的内部私有详细信息,这种假设正确吗? 如果没有,它们的用途是什么?

_前缀通常表示该模块是用C编写的,通常通过纯Python包装器使用,而不是直接使用。 例如, socket模块启动

import _socket
from _socket import *

意味着socket正在使_socket导出的可用项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM