我尝试使用inspect.getsource(deque),并且它在集合中的其他模块上运行时,在deque上运行它会引发错误“找不到类定义”。为什么仅在双端队列发生这种情况,如何查看其源代码?
答案 0 :(得分:5)
此代码是使用CPython的C代码实现的,集合python模块仅为imports that name。根据您的Python版本和安装情况,您可能会在系统中的某个位置找到名为_collections.so
或_collectionsmodule.so
的文件,该文件具有真实的实现,但是inspect.getsource
的确不够聪明,无法找出问题所在。
您可以在此处找到来源:
https://github.com/python/cpython/blob/3.7/Modules/_collectionsmodule.c