可迭代(Interable),迭代器(Iterator),生成器(generator)的手记

今天既然看到这里了,就做个笔记。这个玩意已经花过我很多时间。

可迭代对象只要有__iter__属性的都可以称呼可迭代(Interable)。

迭代器只要拥有__iter__与__next__属性就是迭代器(Iterator)。

Python里面可以通过iter方法生成迭代器(Iterator),iter(可迭代(Interable))

生成器(generator),可以用简单生成器(i,for i in range(10)),写法跟列表生成器样式通用,把[]换成(),

还有可以通过自定义方法用yield生成。

生成器肯定是迭代器,更加是可迭代对象,生成器的功能是最多的

相对迭代器有三个生成器对象的专属方法:

  • send
  • throw
  • close

简单的来说,迭代器只能从对象里面取值,生成器可以互动了,你还可以向对象里面送值。

yield,send,throw,close。我这里不写了,篇幅很长。

可以参考:https://blog.csdn.net/jpch89/article/details/87036970

一般用的最多也就yield及send,携程的时候要用。


还有可以通过自定义方法用yield生成。
[Hái yǒu kěyǐ tōngguò zì dìngyì fāngfǎ yòng yield shēngchéng.]
There can be used a method of generating a custom yield.

猜你喜欢

转载自www.cnblogs.com/sidianok/p/11795975.html
今日推荐