其他启动选项——嵌入调用 | 第一部分 开始 —— 第 3 章: 你是如何运行程序的 |《学习 python:强大的面向对象编程(第 5 版)》| python 技术论坛-大发黄金版app下载

未匹配的标注

在一些特殊的领域,python代码可能被一个封闭系统自动运行。在这种情况下,我们说python程序被嵌入另一个程序(也就是被另一个程序运行)。python代码本身可能被输入到文件文件中,存储在数据库中,从html页面获取,从xml文档解析等等。但从操作的角度看,另一个系统——不是你——可能告诉python来运行你创建的代码。

这种嵌入的执行模式通常被用来支持终端用户自定义——比如,一个游戏程序,可能允许通过在关键时间点运行用户可访问的嵌入的python代码来修改游戏。用户通过提供或修改python代码,可以修改这种类型的系统。因为python代码是被解释的,不需要重新编辑整个系统来整合这个更改(参见第2章获取更多关于python代码如何运行的知识)

在这种模式,运行代码的封闭系统可以由c,c ,或甚至java(当jython系统被使用时)来编写。作为一个例子,通过调用python运行时api(当python被编译在机器上时被创建的库所导出的一套服务)中的函数是可能从一个c程序创建和运行python代码的字符串的:

...
py_initialize(); // this is c, not python
pyrun_simplestring("x = 'brave '   'sir robin'"); // but it runs python code

在这个c代码片段中,用c语言编码的程序通过链接它的库来嵌入python解释器,且传给解释器一个python赋值语句来运行。c程序也可以获得对python模块和对象的访问权限并通过其它的python api工具来处理或执行它们。

本书不是关于python/c集成的,但应该意识到,你可能或不是真正启动你创建的python程序的那个人,这取决于你的组织计划如何使用python。不管怎样,通常仍可使用这里描述的交互的和基于文件的启动技术来测试代码(同那些可能最终使用代码的封闭系统隔离开)[10]。


[10]: 参见 programming python (o’reilly) 获取更多关于在c/c 中嵌入python的知识。嵌入的api能直接调用python函数,加载模块,还有更多。而且,注意到jython 系统允许 java程序使用一个基于java的api(一个python解释器类)来调用python代码。

本文章首发在 大发黄金版app下载 网站上。

上一篇 下一篇
讨论数量: 0



暂无话题~
网站地图