Closures Keep Their Enclosing Variables

def make_multiplier(factor):
    def multiply(x):
        return x * factor
    return multiply

double = make_multiplier(2)
triple = make_multiplier(3)
print(double(5), triple(5))

What does this print?

A

5 5

B

10 15

C

Raises NameError: name 'factor' is not defined

D

Raises TypeError: multiply() missing 1 required positional argument: 'factor'