I’ve been using Python for well over 10 years, and I still don’t have an intuitive mastery of one of its keywords:
yield. Everytime I see it in someone’s code I need to stop and mentally remind myself what it does. I figured I’d write a devnote to help improve my recall.
yield is used in a function with a loop, like so:
def some_func(lim): for i in range(0, lim): yield i
yield means the function returns a “generator” that can be used as an iterable in a loop:
for val in some_func(5): print(val)
You can also straight up convert the generator into a list via something like
The equivalent function, without using
yield would be something like:
def some_func(lim): result =  for i in range(0, lim): result.append(i) return result
This is definitely the kind of function I’ve written often! Now that I’ve actually written it down,
yield is rather straightforward, and hopefully it can help me shorten some of the python code I’ll be writing in the future!