高层层

本章中的函数将允许您执行文件或缓冲区中提供的 Python 源代码,但不允许您与解释器进行更详细的交互。

这些函数中的几个函数接受语法中的开始符号作为参数。可用的开始符号是Py_eval_inputPy_file_inputPy_single_input。这些在接受它们作为参数的函数之后进行描述。

还要注意,其中一些函数带有FILE*参数。需要谨慎处理的一个特殊问题是,不同 C 库的FILE结构可能不同且不兼容。在 Windows(至少)下,动态链接的扩展实际上可能使用不同的库,因此应注意,只有在确定FILE*参数是由与 Python 运行时相同的库创建的情况下,才将FILE*参数传递给这些函数。正在使用。

请注意,如果引发了其他未处理的SystemExit,则只要未设置Py_InspectFlag,该函数就不会返回1,而是退出该过程。

请注意,如果引发了其他未处理的SystemExit,则只要未设置Py_InspectFlag,该函数就不会返回-1,而是退出该过程。

这是下面PyRun_StringFlags()的简化接口,将* flags 设置为 NULL *。

在* globals locals 字典指定的上下文中,pass strs 指定的编译器标志从 str 执行 Python 源代码。参数 start *指定用于解析源代码的启动令牌。

返回将代码作为 Python 对象执行的结果;如果引发异常,则返回* NULL *。

这是下面PyRun_FileExFlags()的简化接口,将* closeit 设置为0,而 flags 设置为 NULL *。

这是下面PyRun_FileExFlags()的简化接口,将* flags 设置为 NULL *。

这是下面PyRun_FileExFlags()的简化界面,将* closeit *设置为0

PyRun_StringFlags()相似,但是 Python 源代码是从* fp *读取的,而不是从内存中的字符串读取的。 * filename 应该是文件名。如果 closeit *为 true,则在PyRun_FileExFlags()返回之前关闭文件。

这是下面Py_CompileStringFlags()的简化接口,将* flags 设置为 NULL *。

解析并编译* str 中的 Python 源代码,返回生成的代码对象。起始令牌由 start *给出;这可以用来约束可以编译的代码,它们应该是Py_eval_inputPy_file_inputPy_single_input。 * filename 指定的文件名用于构造代码对象,并可能出现在回溯或SyntaxError异常消息中。如果无法解析或编译代码,则返回 NULL *。

这是PyEval_EvalCodeEx()的简化接口,仅包含代码对象以及全局和局部变量的字典。其他参数设置为* NULL *。

每当PyCompilerFlags *flags为* NULL *时,cf_flags就被视为等于0,并且由于from __future__ import而导致的任何修改都将被丢弃。

struct PyCompilerFlags {
    int cf_flags;
}
首页