What does Python optimization (-O or PYTHONOPTIMIZE) do?
Solution 1:
In Python 2.7, -O
has the following effect:
- the byte code extension changes to
.pyo
- sys.flags.optimize gets set to 1
-
__debug__
is False - asserts don't get executed
In addition -OO
has the following effect:
- sys.flags.optimize gets set to 2
- doc strings are not available
To verify the effect for a different release of CPython, grep the source code for Py_OptimizeFlag
.
Link to official documentation: https://docs.python.org/2.7/tutorial/modules.html#compiled-python-files