如何找到源collections.deque?

时间:2013-12-30 00:04:46

标签: python

我需要为继承deque的类添加功能,但更喜欢查看collections.deque中的代码来实现新的类final。

>>> from _collections import deque, defaultdict
>>> inspect.getfile(deque)
'/usr/lib/python2.7/collections.pyc'
>>> inspect.getfile(collections)
'/usr/lib/python2.7/collections.pyc'
>>> inspect.getfile(_collections)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/inspect.py", line 403, in getfile
    raise TypeError('{!r} is a built-in module'.format(object))
TypeError: <module '_collections' (built-in)> is a built-in module
>>> 

我在哪里可以找到collections.deque的源代码? 这是源集合,但不包含collections.deque。 - &GT; http://hg.python.org/cpython/file/2.7/Lib/collections.py

1 个答案:

答案 0 :(得分:7)

_collections是内置模块。

在CPython中,这个模块是用C语言编写的: https://github.com/python-git/python/blob/master/Modules/_collectionsmodule.c

但是在PyPy中有一个纯python实现: https://bitbucket.org/pypy/pypy/src/default/lib_pypy/_collections.py