codeop Python编译

Python编译

codeop 模块提供了可以模拟Python读取-执行-打印循环的实用程序,就像在 code 模块中一样。因此,您可能不希望直接使用该模块;如果你想在程序中包含这样一个循环,你可能需要使用 code 模块。

这个任务有两个部分:

能够判断一行输入是否完成了一个Python语句:简而言之,告诉我们是否要打印’">>>"‘或’"…"’。

记住用户已输入了哪些 future 语句,这样后续的输入可以在这些语句被启用的状态下被编译。

codeop 模块提供了分别以及同时执行这两个部分的方式。

只执行前一部分:

codeop.compile_command(source, filename="", symbol=“single”)
尝试编译 source,这应当是一个 Python 代码字符串,并且在 source 是有效的 Python 代码时返回一个代码对象。 在此情况下,代码对象的 filename 属性将为 filename,其默认值为 ‘’。 如果 source 不是 有效的 Python 代码而是有效的 Python 代码的一个前缀时将返回 None。

如果 source 存在问题,将引发异常。 如果存在无效的 Python 语法将引发 SyntaxError,而如果存在无效的字面值则将引发 OverflowError 或 ValueError。

symbol 参数确定 source 是编译为语句 (对应默认值 ‘single’) 还是 expression (‘eval’)。 任何其他值都将导致引发 ValueError。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值