A generator function in python uses yield instead of a return. It is considered an iterable. This allows for the function to “pause” itself until it is recalled. Generators save tons of precious memory by only storing the current value its operating with, then discarding it when called again. A very basic example of an [...]