MaxLunar MaxLunar - 1 year ago 209
Python Question

Checking if string contains valid Python code

I am writing some sort of simple web-interpreter for . I look for messages, check if they are valid Python code, and then I want to execute that code, and return any

to code sender. I have implemented anything but code checker.

import ast

def is_valid(code):
except SyntaxError:
print('Input isnt code.')
return False
print('Code is ok.')
return True

always return
regardless of what comes in. Im really confused...

Answer Source

Keep in mind, the difference between a runtime error and a parser error is significant in your case and example. The statement:


is valid code. Even though this statement will throw a NameError when the Python VM executes the code, the parser will not know that it actually wasn't assigned a value before the statement is parsed, so that's why it's a runtime error, and not a syntax error.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download