Fixing Late Binding With a Default Argument

def make_funcs():
    broken = []
    fixed = []
    for i in range(3):
        broken.append(lambda: i * 10)
        fixed.append(lambda i=i: i * 10)
    return broken, fixed

broken, fixed = make_funcs()
print([f() for f in broken], [f() for f in fixed])

What does this print?

A

[0, 10, 20] [20, 20, 20]

B

[20, 20, 20] [0, 10, 20]

C

[0, 10, 20] [0, 10, 20]

D

[20, 20, 20] [20, 20, 20]