一些选手和评测系统 (例如 DOMJudge) 使用 python3 -m py_compile ${file}
“编译” Python 代码。然而,由于 Python 是高度动态的解释性语言,“编译” 实际上不可行。py_compile
仅仅进行语法解析并生成二进制编码后的语法树,因此它只能检查语法错误。
a, b = map(int, input().split())
print(x + y)
上面的代码很显然地打错了变量名,但是 python3 -m py_compile
仍然能“编译”它。
如果提交的程序返回了 RUN-ERROR
,要考虑是否存在这种(对于其他语言来说会被编译器直接识别的)低级错误。
如果有非常复杂,容易写出 个 bug 的业务逻辑,建议还是换成编译型语言。