Hello, can someone please explain me this piece of code line by line?
I'm mostly troubled with the statement "yield", and while I've googled for examples, none of them seem to be helping me understand this code as none of them use it in this way.
def gen(n):
# tuple version
if n == 0:
yield ()
return
for p in gen(n-1):
yield (1, ) + p
if p and (len(p)<2 or p[1] > p[0]):
yield (p[0] + 1, ) + p[1:]
I'm mostly troubled with the statement "yield", and while I've googled for examples, none of them seem to be helping me understand this code as none of them use it in this way.