Skip to content
loading...

re: Is there a way to pass an object to ast.literal_eval to give it variables? VIEW POST

FULL DISCUSSION
 

Have you looked at the eval function? It evaluates any python expression, so it for sure does the second thing you asked for. I did not really understand your first example, so if eval doesn't work I would need some more explanation of what you are trying to do. Hope it helps :)

 

What I mean, is ast.literal_eval is meant to be a safe version of eval right? Well, take eval, and be able to pass it to it, similar to this:


Python AST Literal Eval

literal_eval("#safe expression e.g. 1*5#")



My Idea:

new_eval("x*y",{
    "x": 4,
    "y": 3
}) # Should return 12
 

So the problem with literal_eval is that it only supports literals. Literals are things like writing a number, string, lists or tuples using their respective syntax. However, you are correct in eval being very unsafe.

I found this project which might be useful or work as inspiration, as it is MIT licensed: github.com/danthedeckie/simpleeval

code of conduct - report abuse