Use of the exec statement could be dangerous, and should be avoided. Moreover, the exec statement was removed in Python
3.0. Instead, the built-in exec() function can be used.
Use of the exec statement is strongly discouraged for several reasons such as:
- Security Risks: Executing code from a string opens up the possibility of code injection attacks.
- Readability and Maintainability: Code executed with
exec statement is often harder to read and understand since
it is not explicitly written in the source code.
- Performance Implications: The use of
exec statement can have performance implications since the code is compiled
and executed at runtime.
- Limited Static Analysis: Since the code executed with
exec statement is only known at runtime, static code
analysis tools may not be able to catch certain errors or issues, leading to potential bugs.
Code examples
Noncompliant code example
exec 'print 1' # Noncompliant
Compliant solution
exec('print 1')