Very nice post!! As a Java programmer I was very confusing about Phyton's yield behavior.
In Java we have a yied method within a Thead class and it's tells a thread scheduler that if it wants to pause current thread it seems to be a good time to pause current execution.
Introducing a generator function concept, it seems more clearly to me how it works on runtime.
Great post!