bart4...@gmail.com: > On Wednesday, 12 April 2017 07:48:57 UTC+1, Steven D'Aprano wrote: >> Here's another example: >> >> answer = 0 >> for i in range(10): >> answer += 1 >> >> instead of >> >> answer = 10 >> >> So... how exactly does the compiler prohibit stupid code? > > Actually, an optimising C compiler (not one of mine!) probably could > reduce that to answer=10.
One of the reasons C compilers need to address "stupid" code like that is that it may arise from macros or from generated code. Maybe the statement "answer += 1" is "answer = answer * 1.01 + 0.0001" in some other (compile-time) circumstances. A similar situation can hit Python as well through a (virtual) method call, a dynamic function call or a conditional import, for example. Marko -- https://mail.python.org/mailman/listinfo/python-list