Помощь с областью видимости и замыканиями в python

У меня есть задание:

Допишите функцию make_divider_of() так, чтобы на её основе можно было создавать производные функции, делящие переданный аргумент на определённое число. Делитель должен передаваться при создании производной функции. Например, функция div2(), приведённая в коде, будет делить любой переданный в неё числовой аргумент на 2 и возвращать результат.

Прилагаю код:

def make_divider_of(divider):
    def division_operation(divisible):
    
    # Ваш код здесь
    

И примеры того, что должно получиться:

div2 = make_divider_of(2)
print(div2(10))  # Такой вызов должен вернуть 10/2, то есть 5.0

div5 = make_divider_of(5)
print(div5(20))  # Такой вызов должен вернуть 4.0 

print(div5(div2(20)))  # Такой вызов должен вернуть 2.0

Вопрос: я не совсем понимаю, как работает замыкание конкретно в этом случае. Я пытался сделать что-то вроде:

def make_divider_of(divider):
    def division_operation(divisible):
        return divisible / divider 

И наоборот, менял местами: divider/divisible, но такое ощущение, что я просто перебираю варианты по пальцам и ни к чему не иду. Прошу, пожалуйста, разжевать подробнее, что должно произойти в коде для получения результата и как оно работает. Спасибо!


Ответы (1 шт):

Автор решения: Клаус
def make_divider_of(divider):
    def division_operation(divisible):
        return (divisible / divider)
    return division_operation
→ Ссылка