Помощь с областью видимости и замыканиями в 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