Can you create an iterable in python which runs clean up code when for loop exits? Something like:
from random import randint
class Iterable:
def __iter__(self):
return self
def __next__(self):
return randint(1, 10)
def __iterclose__(self):
print("Clean up code")
for x in Iterable():
if x < 5:
break
# Prints "Clean up code"