Walrus Target Lands in the Function, Not Global

def find_evens(nums):
    evens = [last_even := x for x in nums if x % 2 == 0]
    return evens

result = find_evens([1, 2, 3, 4, 5, 6])
print(result)
print(last_even)

What happens when this runs?

A

Raises SyntaxError, because last_even is never declared nonlocal or global

B

Prints [2, 4, 6], then crashes with NameError on print(last_even)

C

Prints [2, 4, 6], then 6

D

Raises UnboundLocalError inside find_evens, before it can return