我浏览Python源,发现一个C实现的heapq,以及一个Python实现.为什么两者兼而有之?我import heapq来自CPython 时使用哪一个?
import heapq导入Python实现.您可以通过检查heapq交互式解释器中的值来确认:
In [20]: import heapq
In [21]: heapq
Out[21]: <module 'heapq' from '/usr/lib/python2.7/heapq.pyc'>
Run Code Online (Sandbox Code Playgroud)
heapq.pyc是heapq.py模块的字节编译版本.
但是,文件内部heapq.py是:
# If available, use C implementation
try:
from _heapq import *
except ImportError:
pass
Run Code Online (Sandbox Code Playgroud)
_heapqmodule.c提供_heapq模块.因此,如果C实现可用,则import heapq使用C实现.
| 归档时间: |
|
| 查看次数: |
470 次 |
| 最近记录: |