да, он будет выполнен, когда функция возобновит работу на следующей итерации. Помните, yield подобен кнопке паузы для генератора, и генераторы обычно используются в al oop. Выход своего рода , возвращающий значение (я говорю "своего рода", потому что yield
- это не то же самое, что return
), но при следующем обращении к генератору он будет срабатывать при этом то же место Цель block = []
состоит в том, чтобы сбросить блок в пустой список до следующего go (возможно, вместо этого будет быстрее использовать block.clear()
).
Этот код создает блоки из файла и передать их обратно вызывающей стороне, как только они станут достаточно большими. Последний блок if
должен вернуть последний бит, если есть какой-то остаток, который не помещается в полный блок.