Serhiy Storchaka added the comment: Here is yet one example.
x = 1; y = 0; z = 0 ( 1/x + 1/y + 1/z ) The traceback looks correct: Traceback (most recent call last): File "1.py", line 4, in <module> 1/y + ZeroDivisionError: division by zero But for following code: x = 0; y = 1; z = 0 ( 1/x + 1/y + 1/z ) the traceback is the same and it is totally wrong. This is because generated bytecode is: 1 0 LOAD_CONST 0 (0) 3 STORE_NAME 0 (x) 6 LOAD_CONST 1 (1) 9 STORE_NAME 1 (y) 12 LOAD_CONST 0 (0) 15 STORE_NAME 2 (z) 4 18 LOAD_CONST 1 (1) 21 LOAD_NAME 0 (x) 24 BINARY_TRUE_DIVIDE 25 LOAD_CONST 1 (1) 28 LOAD_NAME 1 (y) 31 BINARY_TRUE_DIVIDE 32 BINARY_ADD 5 33 LOAD_CONST 1 (1) 36 LOAD_NAME 2 (z) 39 BINARY_TRUE_DIVIDE 40 BINARY_ADD 41 POP_TOP 42 LOAD_CONST 2 (None) 45 RETURN_VALUE 1/x and 1/y have the same line number. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue12458> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com