2

对我来说, Iterator 对象,方法似乎很明显X

  • X.next()蟒蛇2.x
  • X.__next__()蟒蛇3.x

不是引用透明的,因为每次调用都会返回不同的结果。但是,我只需要确认我是正确的。谢谢。

4

2 回答 2

5

你是对的,迭代器可以在每次调用时返回不同的结果,所以它不能被称为引用透明的。

但是,使用可迭代对象的聚合操作可以是引用透明的,即使各个步骤不是。例如,即使list的实现对字符串迭代器进行重复的next调用,list('cat')它也是确定性和引用透明的。

于 2012-05-13T04:50:27.500 回答
0

它在引用上是透明的X。该方法本身不会改变透明度,但可迭代对象可以根据需要简单或复杂。

于 2012-05-13T04:31:03.733 回答