背景:无意中想要搞清楚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功能的具体实现才比较靠谱呢?(靠谱指的是“我确定这样找是能找到的,且不会有更好的寻找方案”)
或者说,在我想深入弄清楚一个功能的运行机制时,有什么一般性的套路步骤可以遵循?
cpython工程挺大的,自己蒙头看会困惑且无从下手,可以借助下别人的阅读笔记,比如我的笔记哈哈哈哈:https://www.hongweipeng.com/i...