14

Python2.6がグローバル関数のリストに next() を追加したことに気付きました。

next(iterator[, default])

Retrieve the next item from the iterator by calling its next() method.

が与えられた場合default、イテレータが使い尽くされた場合は返され、そうでない場合 StopIterationは発生します。

これを追加した動機は何ですか?できnext(iterator)ないことと、StopIteration を処理iterator.next()する句でできることは何ですか?except

4

3 に答える 3

18

のような関数との一貫性のためだけですlen()。私は内部的にnext(i)呼び出していると信じています。i.__next__()

http://www.python.org/dev/peps/pep-3114/を参照

于 2009-03-17T21:52:54.800 に答える
10

Python 3.0 以降では、nextメソッドの名前が に変更されていることに注意してください__next__。これは一貫性のためです。nextは特別なメソッドであり、特別なメソッドは慣例 (PEP 8) によって名前が付けられ、先頭と末尾に二重のアンダースコアが付けられます。特別なメソッドは直接呼び出されることを意図していないため、next組み込み関数が導入されました。

于 2009-03-18T00:31:36.823 に答える