Ned Batchelder <n...@nedbatchelder.com> added the comment:
To add to the confusion, the treatment of "if __debug__:" and "if not __debug__:" is now asymmetric: Here is debug.py: import dis import sys print(sys.version) def f(): if __debug__: print("debug") else: print("not debug") if not __debug__: print("NOT DEBUG") else: print("DEBUG") dis.dis(f) $ python3.8 /tmp/debug.py 3.8.0b2 (default, Jul 4 2019, 22:38:04) [Clang 10.0.0 (clang-1000.10.44.4)] 7 0 LOAD_GLOBAL 0 (print) 2 LOAD_CONST 1 ('debug') 4 CALL_FUNCTION 1 6 POP_TOP 10 8 LOAD_CONST 2 (False) 10 POP_JUMP_IF_FALSE 22 11 12 LOAD_GLOBAL 0 (print) 14 LOAD_CONST 3 ('NOT DEBUG') 16 CALL_FUNCTION 1 18 POP_TOP 20 JUMP_FORWARD 8 (to 30) 13 >> 22 LOAD_GLOBAL 0 (print) 24 LOAD_CONST 4 ('DEBUG') 26 CALL_FUNCTION 1 28 POP_TOP >> 30 LOAD_CONST 0 (None) 32 RETURN_VALUE $ python3.8 -O /tmp/debug.py 3.8.0b2 (default, Jul 4 2019, 22:38:04) [Clang 10.0.0 (clang-1000.10.44.4)] 6 0 LOAD_CONST 1 (False) 2 POP_JUMP_IF_FALSE 14 7 4 LOAD_GLOBAL 0 (print) 6 LOAD_CONST 2 ('debug') 8 CALL_FUNCTION 1 10 POP_TOP 12 JUMP_FORWARD 8 (to 22) 9 >> 14 LOAD_GLOBAL 0 (print) 16 LOAD_CONST 3 ('not debug') 18 CALL_FUNCTION 1 20 POP_TOP 11 >> 22 LOAD_GLOBAL 0 (print) 24 LOAD_CONST 4 ('NOT DEBUG') 26 CALL_FUNCTION 1 28 POP_TOP 30 LOAD_CONST 0 (None) 32 RETURN_VALUE In 3.7 (and earlier) the behavior was balanced: $ python3.7 /tmp/debug.py 3.7.3 (default, Apr 10 2019, 10:27:53) [Clang 10.0.0 (clang-1000.10.44.4)] 7 0 LOAD_GLOBAL 0 (print) 2 LOAD_CONST 1 ('debug') 4 CALL_FUNCTION 1 6 POP_TOP 13 8 LOAD_GLOBAL 0 (print) 10 LOAD_CONST 2 ('DEBUG') 12 CALL_FUNCTION 1 14 POP_TOP 16 LOAD_CONST 0 (None) 18 RETURN_VALUE $ python3.7 -O /tmp/debug.py 3.7.3 (default, Apr 10 2019, 10:27:53) [Clang 10.0.0 (clang-1000.10.44.4)] 9 0 LOAD_GLOBAL 0 (print) 2 LOAD_CONST 1 ('not debug') 4 CALL_FUNCTION 1 6 POP_TOP 11 8 LOAD_GLOBAL 0 (print) 10 LOAD_CONST 2 ('NOT DEBUG') 12 CALL_FUNCTION 1 14 POP_TOP 16 LOAD_CONST 0 (None) 18 RETURN_VALUE Is this really the desired behavior? ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue37500> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com