如何查看Cpython源码比较合理?

背景:无意中想要搞清楚staticmethod的实现方式,于是想到了可以用带有__get__的类来实现,但是并不清楚cpython里面原版是怎么实现的,有点好奇于是grep了一下源码,发现在funcobject.h里有提到:

/* The classmethod and staticmethod types lives here, too */
PyAPI_DATA(PyTypeObject) PyClassMethod_Type;
PyAPI_DATA(PyTypeObject) PyStaticMethod_Type;

PyAPI_FUNC(PyObject *) PyClassMethod_New(PyObject *);
PyAPI_FUNC(PyObject *) PyStaticMethod_New(PyObject *);

但只有个函数头,也没什么用,就断在这里了。。。于是上来请教:

如何寻找相关python功能的具体实现才比较靠谱呢?(靠谱指的是“我确定这样找是能找到的,且不会有更好的寻找方案”)
或者说,在我想深入弄清楚一个功能的运行机制时,有什么一般性的套路步骤可以遵循?

阅读 4.7k
1 个回答

cpython工程挺大的,自己蒙头看会困惑且无从下手,可以借助下别人的阅读笔记,比如我的笔记哈哈哈哈:https://www.hongweipeng.com/i...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题