gpt4 book ai didi

python - 如何检查字符串是否是有效的python代码(运行时错误)

转载 作者:行者123 更新时间:2023-12-01 08:09:00 26 4
gpt4 key购买 nike

是否可以检查运行时错误?从字符串中可以清楚看出,pri1nt是一个函数,并且没有在该字符串中定义。

import ast

def is_valid_python(code):
try:
ast.parse(code)
except SyntaxError:
return False
return True

mycode = 'pri1nt("hello world")'

is_valid_python(mycode) # true

exec(mycode) # NameError: name 'pri1nt' is not defined

最佳答案

尝试使用BaseException而不是SyntaxError。这将检查每种类型的 python 错误,包括 NameError。另外,由于 ast.parse 永远不会引发任何错误,因此您应该使用 exec 来代替。

所以应该是这样的:

def is_valid_python(code):
try:
exec(code)
except BaseException:
return False
Return True

mycode = 'pri1nt("hello world")'

is_valid_python(mycode) # false

关于python - 如何检查字符串是否是有效的python代码(运行时错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55379555/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com