Well it might be possible for this one to implement a better bytecode optimiser and a better &quot;stack flow&quot;, the standard interpreter only has a fairly simple peephole optimiser so it will e.g. store to locals to immediately reload the same local, or repeatedly load a name from the local or global scope rather than load it once and dup it:<p><pre><code>    &gt;&gt;&gt; @dis.dis
    ... def foo():
    ...     print a
    ...     print a 
    ...     print a
    ... 
      3           0 LOAD_GLOBAL              0 (a)
                  3 PRINT_ITEM          
                  4 PRINT_NEWLINE       

      4           5 LOAD_GLOBAL              0 (a)
                  8 PRINT_ITEM          
                  9 PRINT_NEWLINE       

      5          10 LOAD_GLOBAL              0 (a)
                 13 PRINT_ITEM          
                 14 PRINT_NEWLINE       
                 15 LOAD_CONST               0 (None)
                 18 RETURN_VALUE        
</code></pre>
I don&#x27;t know how much value the optimised bytecode would bring though, likely not much outside of specific tight loops, and even then it&#x27;s still only interpreted cpython, for little more cost you can integrate scipy solutions (e.g. numba) which&#x27;ll likely have a much more significant impact.