首页 > 解决方案 > 可以将迭代器/生成器视为流吗?

问题描述

我正在阅读 SICP 并最终进入了流的一部分。

python 迭代器/生成器可以被视为流吗?

这个迭代器例如:

class MyNumbers:
  def __iter__(self):
    self.a = 1
    return self

  def __next__(self):
    x = self.a
    self.a += 1
    return x

myclass = MyNumbers()
myiter = iter(myclass)

print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))

满足定义:

流是随时间可用的一系列数据元素。流可以被认为是传送带上一次处理一个而不是大批量处理的项目。

https://en.wikipedia.org/wiki/Stream_(计算)

标签: pythonfunctional-programming

解决方案


您引用的维基百科文章继续:

在面向对象编程中,输入流通常实现为迭代器。

所以,你去;-)


推荐阅读