Python解释器源代码:C语言里藏着灵魂,扩展嵌入一把梭,引爆你的编程脑洞
扩展和嵌入 解释器此文档讲述了怎样运用C或C 撰写模块来借助新型模块扩充解释器功能, 这些模块不但能够定义全新函数, 还能够定义全新对象类型及其方法, 该文档又叙述了怎样把解释器嵌入至另一应用程序里用作扩展语言, 最终, 它呈现了怎样编译并链接扩展模块, 从而使其能够在运行时动态加载到解释器中, 要是底层操作系统支持该特性的话。此文档假定你知悉有关方面的基本常识, 对于该语言的非正式阐释, 可查阅相关内容, 给出了更为正式的语言界定, 涵盖现存的对象类型、函数以及模块包括内置的和用特定方式编写的的文档, 使得此语言拥有广泛的应用范畴。关于整个 /C API 的详细介绍请参阅独立的 。推荐的第三方工具本指南单单只是介绍了, 作为此版本其中一部分而提供的, 用于创建扩展的基本工具。第三方工具, 像某种工具、cffi、SWIG以及Numba, 它们提供了更为简单且更为复杂的方式, 来为进行C和C扩展的创建。参见User Guide:“User Guide”, 既包含了若干用于简化二进制扩展创建的可用工具又探讨了诸多为何要最初创建扩展模块的各类缘由。不使用第三方工具创建扩展本指南的这一部分, 涵盖了在不存在第三方工具协助的情形下, 去创建C和C 扩展, 它主要是针对这些工具的创建者而言的, 并非是给你提建议, 关于创建自己的C扩展的办法。在更大的应用程序中嵌入 运行时有些时候, 并非是要去创建那种, 于解释器里当作主应用程序来运行的扩展, 反而是期望把运行时, 嵌入到更大的那个应用程序之中。这一节阐述了成功达成此项操作所牵涉的一些具体细节。