当前位置: 首页 > news >正文

Python解释器源代码:C语言里藏着灵魂,扩展嵌入一把梭,引爆你的编程脑洞

扩展和嵌入 解释器

此文档讲述了怎样运用C或C + +撰写模块来借助新型模块扩充解释器功能, 这些模块不但能够定义全新函数, 还能够定义全新对象类型及其方法, 该文档又叙述了怎样把解释器嵌入至另一应用程序里用作扩展语言, 最终, 它呈现了怎样编译并链接扩展模块, 从而使其能够在运行时动态加载到解释器中, 要是底层操作系统支持该特性的话。

此文档假定你知悉有关方面的基本常识, 对于该语言的非正式阐释, 可查阅相关内容, 给出了更为正式的语言界定, 涵盖现存的对象类型、函数以及模块(包括内置的和用特定方式编写的)的文档, 使得此语言拥有广泛的应用范畴。

关于整个 /C API 的详细介绍,请参阅独立的 。

推荐的第三方工具

本指南单单只是介绍了, 作为此版本其中一部分而提供的, 用于创建扩展的基本工具。第三方工具, 像某种工具、cffi、SWIG以及Numba, 它们提供了更为简单且更为复杂的方式, 来为进行C和C++扩展的创建。

参见

User Guide:

“User Guide”, 既包含了若干用于简化二进制扩展创建的可用工具,又探讨了诸多为何要最初创建扩展模块的各类缘由。

不使用第三方工具创建扩展

本指南的这一部分, 涵盖了在不存在第三方工具协助的情形下, 去创建C和C ++扩展, 它主要是针对这些工具的创建者而言的, 并非是给你提建议, 关于创建自己的C扩展的办法。

在更大的应用程序中嵌入 运行时

有些时候, 并非是要去创建那种, 于解释器里当作主应用程序来运行的扩展, 反而是期望把运行时, 嵌入到更大的那个应用程序之中。这一节阐述了成功达成此项操作所牵涉的一些具体细节。

http://www.jsqmd.com/news/1119325/

相关文章:

  • Kimi LeetCode 3454. 分割正方形 II C++实现
  • Android 高级工程师面试:Java 基础知识 近1年高频追问 22 题
  • Milvus、Qdrant、Chroma:向量数据库选型的工程决策
  • 小白也能看懂的大模型应用架构与Agent:让AI从“只会说“变成“会干活“
  • C# ConditionalAttribute 条件特性+Obsolete 废弃特性
  • stm32四轴飞行器BUG篇
  • 终极DLSS切换秘籍:3步解锁游戏性能新境界
  • CentOS8.0编译源码安装nginx和防火墙使用
  • 政企汇报宣传片为什么离不开 3D 动画?
  • PCB设计中孤铜现象的影响与AD18处理技巧
  • 奇门取号报“订单号不一致”?一次 trade_order_list 的排查实录
  • 《唤醒你的AI同事:WorkBuddy从零上手》034:提示词编写技巧
  • YOLO11全任务适配指南:检测、分割、姿态估计的性能调优技巧
  • 48. OrCAD在创建封装库时,管脚数目很多的元器件应该怎么合理?I Cadence Allegro 电子设计 快问快答
  • 设备单元级(L1)实施路径
  • 批量压缩图片还在用在线工具?这款648KB小软件,画质不变体积暴减
  • 不用喂食不用换水的“水族箱”、逆向净水器的智能水龙头,接入 Home Assistant、用 RF 破解把吊扇接入智能家居|DF创客周刊(第178期)
  • 星火X1 0725 vs 豆包:办公场景下AI模型精准能力实测
  • 混凝土裂隙数据集 建筑物裂缝分割数据集 1000张yolo数据集
  • 【AI编程代码审查黄金标准】:20年资深架构师亲授5大质量保障铁律,错过再等十年?
  • JMeter分布式压测实战:突破单机瓶颈,模拟海量并发
  • 高速PMSM无感控制三大难题与工程解决方案
  • ShadingModel与Lighting
  • ClaudeAPI 医疗场景落地指南:适用边界、提示词与审核流程
  • C++语言基础1:作用域解析运算符“::”详细讲解
  • Scrum落地避坑指南:一个技术负责人踩过的5个流程管理深坑与解法
  • 云服务器已进入黑暗森林时代
  • 【Linux网络】深入 HTTP 协议(一):从初识到 URL 编解码底层探索
  • 【AVRCP】规范精讲[38]:本地调节音量,控制器如何同步感知与更新
  • 演唱会、音乐会适合用的Tally灯