python 创建空生成器
文章目录
前两天写代码突然有一个很奇怪的想法————产生一个空的生成器。其实也不奇怪,就是为了代码风格的统一而已。假设有一个返回可迭代对象作为结果的函数a,一个调用a处理结果的函数b,在b中自然而然的有这样的结构:
|
|
a的返回值受很多因素影响,当然也可能a并没有东西返回给b,b自然用不着去处理。为了不改变b的代码,让for循环不执行就OK了。造一个空的生成器就是个不错的点子。至于形式嘛,这里贴出三种形式:
|
|
生成器一旦执行到 return,就会终止迭代而且不再产生值,故 return 后边是什么都不会被接收到了。这样写即在产生值之前就 stop iteration。
|
|
|
|
yield from 这个关键字,表示生成器委托。说起来好像很高端的样子,我只能用一个不知道恰不恰当的例子来描述一下:
|
|
以上两种效果应该是一样的,只能先这么解释了。我个人呢,还是比较喜欢 yield from 的。但是后来想想我的目的,为什么要搞一堆花里胡哨的呢?
|
|
返回一个空的列表不好么,只能说,完全是代码习惯的问题,喜欢用哪种就用哪种了。
文章作者 Josephine
上次更新 2020-03-10