Steve Stagg <stest...@gmail.com> added the comment:
Apologies, script should have read: class B: def __bool__(self): print("bool(B)") raise AttributeError("don't do that!") b = B() try: if b: pass except AttributeError: print("GOT ERROR") raise IndexError("Should GET THIS") print("SHOULDN'T GET THIS") --- The DIS before the change for this code is: BEFORE: 1 0 LOAD_BUILD_CLASS 2 LOAD_CONST 0 (<code object B at 0x7ff45711e710, file "<dis>", line 1>) 4 LOAD_CONST 1 ('B') 6 MAKE_FUNCTION 0 8 LOAD_CONST 1 ('B') 10 CALL_FUNCTION 2 12 STORE_NAME 0 (B) 6 14 LOAD_NAME 0 (B) 16 CALL_FUNCTION 0 18 STORE_NAME 1 (b) 7 20 SETUP_FINALLY 8 (to 30) 8 22 LOAD_NAME 1 (b) 24 POP_JUMP_IF_FALSE 26 9 >> 26 POP_BLOCK 28 JUMP_FORWARD 30 (to 60) 10 >> 30 DUP_TOP 32 LOAD_NAME 2 (AttributeError) 34 JUMP_IF_NOT_EXC_MATCH 58 36 POP_TOP 38 POP_TOP 40 POP_TOP 11 42 LOAD_NAME 3 (print) 44 LOAD_CONST 2 ('GOT ERROR') 46 CALL_FUNCTION 1 48 POP_TOP 12 50 LOAD_NAME 4 (IndexError) 52 LOAD_CONST 3 ('Should GET THIS') 54 CALL_FUNCTION 1 56 RAISE_VARARGS 1 >> 58 RERAISE 14 >> 60 LOAD_NAME 3 (print) 62 LOAD_CONST 4 ("SHOULDN'T GET THIS") 64 CALL_FUNCTION 1 66 POP_TOP 68 LOAD_CONST 5 (None) 70 RETURN_VALUE Disassembly of <code object B at 0x7ff45711e710, file "<dis>", line 1>: 1 0 LOAD_NAME 0 (__name__) 2 STORE_NAME 1 (__module__) 4 LOAD_CONST 0 ('B') 6 STORE_NAME 2 (__qualname__) 2 8 LOAD_CONST 1 (<code object __bool__ at 0x7ff45711e660, file "<dis>", line 2>) 10 LOAD_CONST 2 ('B.__bool__') 12 MAKE_FUNCTION 0 14 STORE_NAME 3 (__bool__) 16 LOAD_CONST 3 (None) 18 RETURN_VALUE Disassembly of <code object __bool__ at 0x7ff45711e660, file "<dis>", line 2>: 3 0 LOAD_GLOBAL 0 (print) 2 LOAD_CONST 1 ('bool(B)') 4 CALL_FUNCTION 1 6 POP_TOP 4 8 LOAD_GLOBAL 1 (AttributeError) 10 LOAD_CONST 2 ("don't do that!") 12 CALL_FUNCTION 1 14 RAISE_VARARGS 1 ---- Afterwards, tehre's a single change: 8 becomes: 8 22 LOAD_NAME 1 (b) 24 POP_TOP ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue42899> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com