Это две совершенно разные вещи. Если вы сделаете yield i
, вы на самом деле получите число i, что приведет к выводу 1 2 3. Однако смысл кода состоит в том, чтобы получить элементы массива, поэтому вы получите self[i]
, что означает " i-й элемент массива self "или, более технически," вызывает метод []
on self
с аргументом i
и выдает результат ".