OneBug This week's bugs
Spot the bug Python
1
# One label formatter per HTTP status.
2
codes = [404, 500, 503]
3
labels = {404: "not found", 500: "server error", 503: "unavailable"}
4
handlers = []
5
for code in codes:
6
    handlers.append(lambda: f"{code} {labels[code]}")
7
print([h() for h in handlers])
8
# expected: ['404 not found', '500 server error', '503 unavailable']
9
# actual:   ['503 unavailable', '503 unavailable', '503 unavailable']  (!)

Read the full write-up for this bug (spoilers)