Задача:
- Имеется библиотека, метод которой принимает пользовательскую функцию, и выполняет ее внутри себя.
- У пользовательской функции не должно быть параметров.
- Имеется так же массив из чисел 1, 22, 333, 4444, 55555.
Нужно перебрать эти числа, и вызвать метод библиотеки с передачей в него пользовательской функции так, чтобы результат работы пользовательской функции зависел от перебираемого числа.
Вариант решения через хранение перебираемого значения в замыкании:
import some_library # Предполагаемая библиотека
numbers = [1, 22, 333, 4444, 55555]
for num in numbers:
# Создается пользовательская функция для текущего числа
def make_user_function(current_num):
def user_function():
# Функция использует current_num из замыкания
return f"Обработано число: {current_num * 2}"
return user_function
# Получение функции для текущего числа
custom_func = make_user_function(num)
# Вызывается библиотечный метод с передачей функции
some_library.execute(custom_func)