查找SyntaxError异常python的实际值
我试图使用ast库对存储在字符串中的python代码求值,但是在访问生成的SyntaxException错误的message属性时,我只能打印对对象的引用,而不能打印实际值。如何打印此值 以下是我使用的代码:查找SyntaxError异常python的实际值,python,Python,我试图使用ast库对存储在字符串中的python代码求值,但是在访问生成的SyntaxException错误的message属性时,我只能打印对对象的引用,而不能打印实际值。如何打印此值 以下是我使用的代码: #!/usr/bin/python import ast def is_valid_python(code): try: ast.parse(code) except SyntaxError: return str(SyntaxErr
#!/usr/bin/python
import ast
def is_valid_python(code):
try:
ast.parse(code)
except SyntaxError:
return str(SyntaxError.message)
return True
code = 'print("hello"")'
print(is_valid_python(code))
所印的信息是:
<attribute 'message' of 'exceptions.BaseException' objects>
您正在打印泛型SyntaxError类的消息属性,而不是来自引发的实际异常的属性 试一试 请注意,有一个函数在成功时返回True,或者在失败时返回字符串,这有点奇怪
except SyntaxError as syntax_error:
return syntax_error.message