Python的官方文档中有专门一个叫Python/C API的文档,是Python暴露给用户来编写模块的api,是用纯c语言的,直接编译生成dll或so动态链接库,改扩展名为pyd就可以放到python目录下的DLL文件夹里,在Python里直接import就行。
用这种方式你就基本能彻底理解Python中一切皆对象的概念,所有的所有都是一个叫PyObject的东西,就连代码块都是一个叫PyCode的东西。也会让你逐渐注意到Python的垃圾回收机制里引用计数的东西,每次处理PyObject都需要考虑引用计数要不要加1,什么时候加1,这些都是手动的。
看了其他回答,有用cpython来调c++动态链接库的,傻子才会这么干,low的一批。有用boost Python的,那玩意最近貌似不支持跨python版本了,其实boost Python就是对Python/C api进行封装。