对我来说,似乎很明显Iterator对象X
,方法:
X.next()
python 2.x X.__next__()
python 3.x 不是引用透明的,因为每次调用都会返回不同的结果。 但是,我只需要确认我是对的。感谢。
答案 0 :(得分:5)
你是对的,迭代器可以在每次调用时返回不同的结果,因此它不能被称为refereically transparent。
但是,消耗 iterable 的聚合操作可以是参考透明的,尽管个别步骤不是。例如,list('cat')
是确定性和引用透明的,但 list 的实现会在字符串迭代器上重复 next 调用。
答案 1 :(得分:0)
与X
一样,它具有参考意义。该方法本身不会改变透明度,但迭代可以根据需要简单或复杂。