Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32k
Open
Description
This function
def f(x, y, c): return 1 + (x if c else y)
compiles to
1 RESUME 0 2 LOAD_SMALL_INT 1 LOAD_FAST_BORROW 2 (c) TO_BOOL POP_JUMP_IF_FALSE 9 (to L1) NOT_TAKEN LOAD_FAST_BORROW 0 (x) BINARY_OP 0 (+) RETURN_VALUE L1: LOAD_FAST 1 (y) BINARY_OP 0 (+) RETURN_VALUE
Note that the load ofy
usesLOAD_FAST
even thoughLOAD_FAST_BORROW
is safe.
This becomes important withvirtual iterators as the iterable for the loop is live at BB end.