– 编译Python代码 – 自定义Python解释器(Python教程)(参考资料)
codeop
– 编译Python代码
codeop
模块提供了Pythonread-eval-print循环可以使用的实用程序仿效,就像code
模块中所做的那样。因此,您可能不希望直接使用该模块;如果你想在你的程序中包含这样一个循环,你可能想要使用code
模块来代替
这个工作有两个部分:
codeop
模块提供了一种方法来完成这些事情,以及两种方法.
只做前者:
codeop.
compile_command
(source, filename=”<input>”, symbol=”single”)-
尝试编译source,这应该是一段Python代码并返回acode对象,如果source是有效的Python代码。在这种情况下,代码对象的filenameattribute将是filename,默认为
"<input>"
。返回None
如果source是not有效的Python代码,但是有效的Python代码的前缀.如果source,会有例外.
SyntaxError
如果Python语法无效,则会引发,OverflowError
要么ValueError
如果文字无效的话symbol论证决定是否source编译为声明(
"single"
,默认值)或表达式("eval"
)。任何其他值都会导致ValueError
被抬起注意
解析器可能(但不太可能)在到达源的末尾之前停止使用成功的结果进行解析;在这种情况下,可以忽略尾随符号而不是引起错误。例如,反斜杠后跟两个换行符后面可能跟随任意垃圾。一旦解析器的API更好,这将被修复.
评论被关闭。