yield это как return, только когда мы доходим до yield у нас останавливается выполнение функции на данном месте, пока мы снова не вызовем метод next

def test():
	for i in range(4):
		yield i

a = test()
next(a) # 0
next(a) # 1