Python(此处特指CPython)调用C/C++的方式并不只有一种,在官方的文档中的至少包括两种:使用ctypes调用任意动态库文件,编写使用特定的API编写的的动态库C Extension。C Extension 编写时可以用Cython,Swig(Python),Boost.Python等作为工具。
而就我的认知而言,一般情况下使用较多的主要是自己手写C Extension (我的理解是理论上运行最快,原因是中间没有别的抽象层,多用于高性能库)和Cython(我的理解是最好写,因为是Python语法的超集,多用于基于Python代码快速实现优化)。
numpy的主要实现方式应该是手写的C Extension,同时也支持了Cython和ctypes的使用。
我的推理逻辑如下,在numpy中我们可以发现源代码中有.pxd文件(pxd是Cython的一种文件后缀),ctypes的导入和手写的C Extension。基于此我们可以推断,numpy支持不止一种方案进行Python与C的交互。
进一步研究的话,我们会发现pxd的开头注释是#NumPy static imports for Cython
我的理解是这说明其文件目的是在Cython中静态引用。
而ctypes的使用处则有如下注释While this module is not used unless the user passes in ctypes members, it is eagerly imported from numpy/core/__init__.py.
我猜测,这个实际上应该也并非用于核心功能实现的代码段。
至于这里的跳转到的代码我认为是用于有类型严格要求的代码提示工具而进行的类型声明。