Walrus Leaks, Loop Variable Does Not

results = [last := n * 2 for n in range(5)]

print(results)
print(last)
print(n)

What happens when this runs?

A

Crashes immediately: a comprehension cannot contain an assignment expression

B

Prints [0, 2, 4, 6, 8], then 8, then crashes with NameError on print(n)

C

Prints [0, 2, 4, 6, 8], then crashes with NameError on print(last)

D

Prints [0, 2, 4, 6, 8], then 8, then 4