Lets say I have the following code
def top():
counter = 0
for ch in child_1():
print(ch)
counter += 1
if counter > 2:
break
def child_1():
for ch in child_2():
yield ch
print("child_1 logic has finished")
def child_2():
for ch in "123456789":
yield ch
print("child_2 logic has finished")
if __name__ == '__main__':
top()
Is there a way to have top() method to exit in the middle of the iteration like I have the counter condition, but let the children to finish their logic? (get to the code after the yield statement)
I tried to use while loop and other python tricks but it all went unsuccessful, I don't think there's a way without modifying the nested generators to not be a generators but I'm trying my shot here :D