1

I want to execute a correct Python program using exec() and then get variables and their values after executing. Google says that I should create a dictionary and write the result of execution there: exec(code_object) in variables. But unfortunately that doesn't in Python 3.

1

1 Answer 1

1

The code in Python 3 should be:

exec(code_object, variables)

This syntax is also Python 2 compatible.


exec(code_object) in variables

would compile and run in Python 3 but do something completely different from Python 2 - it would execute the code_object in current scope; the exec would return None; then the expression None in variables would evaluate False since None is not a key in variables; the result would be dropped - thus neither compile time nor possibly run-time error occurs, except for code_object seeing the wrong scope.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.