如何在python3.6项目中使用收益率生成器

  介绍

这期内容当中小编将会给大家带来有关如何在python3.6项目中使用收益率生成器,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

定义一个函数测试(),看看返回的效果

def 测试(n):   for 才能小姐:拷贝范围(n):   ,,return 我   ,,,print(& # 39;马克# 39;)

测试结果

for 小姐:拷贝范围(5):   打印才能(测试(3))

输出

0
0
0
0
0

每次调用函数时碰到返回就自动结束了,返回当前我值

再来看看产生的效果:

def  test2 (n):   for 才能小姐:拷贝范围(n):   ,,,油品收率   ,,,print(& # 39;马克# 39;)

测试

for 小姐:拷贝范围(5):   打印才能(test2 (3))

输出

& lt;发电机对象test2 (0 x12d245200>
& lt;发电机对象test2 (0 x12d245200>
& lt;发电机对象test2 (0 x12d245200>

只要函数中含有收益,python就会默认这个函数是一个生成器,这个测试相当于重复打开了三次生成器

生成器需要用<代码> next() 调用

测试

t =, test2 (3)   for 小姐:拷贝范围(3):   打印才能(& # 39;i=& # 39;,我)   打印才能(next (t))

下(t)等同于t.__next__ ()

结果

=0
0
i=1
标记
1
=2
标记
2

可以看的到,第一次返回<代码> i=0 之后,第二次再调用函数时,从<代码>产量我> 打印(& # 39;马克# 39;)

生成器还支持用<代码>发送()将值传递进函数:

def  test3 ():   value 才能=,(油品收率1)   打印才能(值)   打印才能(& # 39;mark1& # 39;)   value 才能=,(油品收率值)   打印才能(值)   打印才能(& # 39;mark2& # 39;)

测试

t2 =, test3 ()   print (t2.__next__ ())   打印(& # 39;- - - - - - - - - - - - - - - - - # 39;)   打印(t2.send (2))   打印(& # 39;- - - - - - - - - - - - - - - - - # 39;)   打印(t2.send (3)

输出

1
- - - - - - - - - - - -
2
mark1
2
- - - - - - - - - - - -
3
mark2
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StopIteration ,,,,,,,,,,,,,,,,,,,,,,,,,,,回溯(去年)最近调用
& lt; ipython -输入- 102 - 56 - e62df29d71>在& lt; module> ()
,,,,,4打印(t2.send (2)
,,,,,5打印(& # 39;- - - - - - - - - - - - - - - - - # 39;)
- - - - -在6打印(t2.send (3)

抛出StopIteration:

第一次next()返回1,并在当前停止,发送(2)会将2传输给当前停止的那一步处,即相当于<代码> value=https://www.yisu.com/zixun/(收益率1)变为<代码> value=https://www.yisu.com/zixun/(2)

然后继续运行

打印(值)   打印(& # 39;mark1& # 39;)   value =,(油品收率值)

碰到收益率再次停止,返回此时的vlue值2,之后<代码>发送(3)将3传输给当前停止那一步处,即第二个<代码>屈服值> 打印(值)   印刷(& # 39;mark2& # 39;)

上述就是小编为大家分享的如何在python3.6项目中使用收益率生成器了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

如何在python3.6项目中使用收益率生成器