我正在浏览Python源代码,发现C implementationheapq,还有Python implementation。为什么两者都有?当我从CPython进行import heapq时使用哪一个?

最佳答案

import heapq导入Python实现。您可以通过检查内部解释器中heapq的值来确认这一点:

In [20]: import heapq

In [21]: heapq
Out[21]: <module 'heapq' from '/usr/lib/python2.7/heapq.pyc'>
heapq.pycheapq.py模块的字节编译版本。

但是,inside the heapq.py file是:
# If available, use C implementation
try:
    from _heapq import *
except ImportError:
    pass
_heapqmodule.c提供_heapq模块。因此,如果C实现可用,则import heapq使用C实现。

关于Python heapq-Python和C实现吗?使用哪一个?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29244014/

10-12 04:07