零基础学python-19.9 生成器函数与生成器表达式
零基础学python-19.9 生成器函数与生成器表达式
raylee2015 发表于2年前
零基础学python-19.9 生成器函数与生成器表达式
  • 发表于 2年前
  • 阅读 0
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云实验室 1小时搭建人工智能应用,让技术更容易入门 免费体验 >>>   

这一章节主要讨论生成器函数与生成器表达式的联系与区别。

1.联系

* 两者之间都是返回生成器。下面是示例代码

>>> g=(x for x in range(5))
>>> g
<generator object <genexpr> at 0x01E673F0>
>>>


 

>>> def test():
	for x in range(5):
		yield x

		
>>> test()
<generator object test at 0x01E67440>
>>>


* 两者都支持手动迭代或者自动迭代。下面是示例代码

>>> g=(x for x in range(5))
>>> next(g)
0
>>> for item in g:
	print(item)

	
1
2
3
4
>>>


 

>>> def test():
	for x in range(5):
		yield x

		
>>> g=test()
>>> next(g)
0
>>> for item in g:
	print(item)

	
1
2
3
4
>>>


2.不同

生成器函数它里面可以放置更多的,而且对于send的支持,个人认为函数比表达式来的容易,例如:

如果我想传一个参数到表达式或者函数里面进行运行,然后打印,这个时候表达式很难完成(暂时笔者没有想到表达式的实现,如果有读者能够实现,请告知,谢谢)。

下面只是给出函数的实现:

>>> def test():
	for x in range(5):
		y=(yield x)+2
		print(y)

		
>>> g=test()
>>> next(g)
0
>>> g.send (3)
5
1
>>>


总结,这一章节主要说明了生成器函数与生成器表达式的联系与区别。

 

这一章节就说到这里,谢谢大家

------------------------------------------------------------------

点击跳转零基础学python-目录

 

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

标签: python
共有 人打赏支持
粉丝 7
博文 265
码字总数 44224
×
raylee2015
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: