exec() Execute code block
Last updated: 2026-09-22
exec() Execute code block
exec() executes Python code (statements or blocks) from a string; returns None.
| Category | Built-in Functions |
|---|---|
| Kind | Built-in Function |
| Python Version | all |
📝 Syntax
exec(code[, globals[, locals]])
⚙️ Parameters
| code Required | Code to execute: a string, bytes, or code object. |
|---|---|
| globals Optional | The global namespace dict.(Default:None) |
| locals Optional | The local namespace dict.(Default:None) |
Returns:None; statements in the code take effect in the caller.
💥 Raises
SyntaxError— Raised when the code has a syntax error.TypeError— Raised when code has an invalid type or globals/locals is not a dict.
▶ Example
Edit the code, press Run, and see the result in the output panel:
Output:
6
y = 6
🏷️ Related Built-in Functions
💡 Related Cases
More case studies coming soon — check back later.
❓ FAQ
QAfter exec('y = 1'), can I use y directly?
AAt module top level, yes; but inside a function, no — assignments in exec do not write into local variables. The safe approach is exec(code, ns) and then read from the ns dict.
QDoes exec() return a value?
ANo, it always returns None; results are read back through the namespace dict, e.g. exec('y = x * 2', ns) then ns['y'].
QWhen should I use exec() versus eval()?
AUse exec for running multi-line statements and defining functions; use eval for evaluating a single expression's value. Their security warning is the same — never run untrusted input.
QHow do I use exec's globals argument?
Aexec(code, {'x': 3}) runs the code only in the given namespace without polluting the outside environment — a common way to isolate an execution context.