これについては意見が分かれているようです-これを行うためのPythonicの「正しい方法」はありますか?
質問する
3604 次
2 に答える
7
空の反復子の方が優れていると思います。なぜなら、何も繰り返さない方が速いからです。最初に戻り値が None でないかどうかを確認してから、反復するかどうかを確認します。
for x in function():
do_something()
value = function()
if value is not None:
for x in value:
do_something()
これを見てください。
また、通常は iter 属性を None で初期化するのではなく、空の iter オブジェクトで初期化します。
self.list_of_users = []
いいえ
self.list_of_users = None
于 2013-02-01T04:05:27.287 に答える
5
私が従うように教えられた一般的な方法は、可能であれば、入力ドメイン内のすべての有効な値に対して同じデータ型を返すことです。他の人があなたのコードを使用しやすくなり、ドキュメントがきれいになります。有効な入力ドメイン外の値については、例外を発生させます。
この場合、None ではなく、空の反復子を使用する方が適切なようです。これらのインスタンスで他のプログラミング言語が null を返すことを好むことは知っていますが、あなたが説明したシナリオでそれを行うメリットはありません。
于 2013-02-01T05:02:21.740 に答える