Вернуть список напрямую. Преимущества:
- Это более понятно
- Список можно использовать повторно. (итератор не) на самом деле не правда, спасибо, Джон
Вам следует использовать итератор (yield), когда вы думаете, что вам, вероятно, не придется выполнять итерацию до конца списка или когда у него нет конца. Например, клиентский вызов будет искать первый продукт, который удовлетворяет некоторому предикату, вы можете подумать об использовании итератора, хотя это надуманный пример, и, возможно, есть более эффективные способы его выполнения. В принципе, если вы заранее знаете, что весь список нужно будет рассчитать, просто сделайте это заранее. Если вы считаете, что это не так, рассмотрите возможность использования версии итератора.