IteratorオブジェクトX
、メソッドように私には明らかに思える:すべての呼び出しは、A返すので次のメソッドは、Pythonイテレータに対して参照を透過的に透過しますか?
X.next()
のPython 2.xのX.__next__()
のPython 3.xの
は参照透明ではありません異なる結果。 しかし、私は正しいことを確認する必要があります。ありがとう。
IteratorオブジェクトX
、メソッドように私には明らかに思える:すべての呼び出しは、A返すので次のメソッドは、Pythonイテレータに対して参照を透過的に透過しますか?
X.next()
のPython 2.xのX.__next__()
のPython 3.xのは参照透明ではありません異なる結果。 しかし、私は正しいことを確認する必要があります。ありがとう。
あなたは、イテレータが各呼び出しで異なる結果を返すことができるので、それは明確に透明に呼び出すことはできません。
しかし、繰り返し可能なを消費する集計アクションは、個々のステップがそうではなくても、明確に透明になります。例えば、list('cat')
は、確定的であり、明確に透明なイベントですが、リストの実装では、が次のようになります。が文字列イテレータを呼び出します。
これは、X
と言い換えると参考になります。メソッド自体は透明度を変更するものではありませんが、繰り返し可能なものは単純なものでも複雑なものでもかまいません。