首页 » 网站推广 » phpyieldsendcur技巧_Python对象人之初学yield一

phpyieldsendcur技巧_Python对象人之初学yield一

访客 2024-12-15 0

扫一扫用手机浏览

文章目录 [+]

结果工具人创造,好心人不安好心,让工具人高位接盘。

于是,工具人默默地用刚学会的python 主要特性yield,写了一个许愿池(天生器),每次工具人许愿(send)就会让上证指数上涨100点。

phpyieldsendcur技巧_Python对象人之初学yield一

代码如下:def wish_index_000001_point_up(price): print('初始点位:{:.2f}'.format(price)) while True: change = yield price += change print('当前点位:{:.2f}'.format(price))wish = wish_index_000001_point_up(3400.00)next(wish) #初始点位:3400.00wish.send(100) #当前点位:3500.00wish.send(100) #当前点位:3600.00打印结果:初始点位:3400.00当前点位:3500.00当前点位:3600.00

上面这段代码中,我们只要在函数中增加了yield,就可以把一样平常函数变成一个天生器,

phpyieldsendcur技巧_Python对象人之初学yield一
(图片来自网络侵删)

个中yield可以理解为一个管道,每次程序运行到yield的时候都会愣住,等待输入。
第一句next(wish),为了让天生器停在yield的地方,此时,打印出“初始点位:3400.00”

当我们每次许愿wish.send(100)的时候,就相称于给yield发送了数据,此时上证指数就会收到100的涨幅。
然后又回到了yield等待下一次许愿。
于是,两次许愿分别打印出:“当前点位:3500.00”,“当前点位:3600.00”。

那么既然yield被理解为一个管道,那既然可以输入,也可以一定输出,我们调度下许愿的办法:

def wish_index_000001_point_up(price): while True: change = yield price price += change

这里我们去掉了while循环之前和内部的两句print,并且在yield后增加了price,然后我们重新许愿:

wish = wish_index_000001_point_up(3400.00)cur_point = next(wish) #初始点位:3400.00print('初始点位:{:.2f}'.format(cur_point))up = wish.send(100) #当前点位:3500.00print( '当前估值:{:.2f}'.format(up))up = wish.send(100) #当前点位:3600.00print( '当前估值:{:.2f}'.format(up))

我们关注这句代码:“change = yield price”。
该行代码会从右往左实行,初始化天生器时,会首先实行右半边yield price,此时price(我们的入参3400)会通过yield传出到cur_point,然后实行左半边change = yield,即等待输入许愿到change。

当我们每次许愿wish.send(100)的时候,100将会被通报给change,然后周而复始。

工具人刚开始很困惑,为什么yield被叫做天生器呢?这个语法糖存在的意义是什么?

#许愿池def wish_index_000001_point_up2(price,times): i = 0 while i < times: yield price price += 100 i = i + 1for price in wish_index_000001_point_up2(3400.00,5): print('当前估值:{:.2f}'.format(price)) #底细交易for price in [3400.00,3500.00,3600.00,3700.00,3800.00]: print('当前估值:{:.2f}'.format(price))

这里我们看到,利用许愿池5次,和通过“底细交易”都可以得到如下结果:

当前估值:3400.00当前估值:3500.00当前估值:3600.00当前估值:3700.00当前估值:3800.00

但是他们的本钱是不一样的,“底细交易”的数组须要完全的布局,会占用了5个float大小的内存,如果拥有大量“底细交易”的时候,程序的内存会受到寻衅,而我们的“许愿池”则温顺得多,每次只实现一个欲望----细水长流啊!

当然yield的浸染远远不止这些,后续在先容协程的时候我们会再提到他。

好了,本日的先容就到这里了,如果您和我一样喜好谈股论金庆余年,追涨杀跌清贫乐的,请多多转发,多多许愿~

标签:

相关文章

唐河大数据,驱动智慧城市发展新引擎

随着互联网、物联网、大数据等技术的飞速发展,我国智慧城市建设已进入全面提速阶段。唐河,这座历史悠久、文化底蕴深厚的城市,也在这股浪...

网站推广 2024-12-17 阅读0 评论0

商务大数据,赋能企业决策的智能引擎

随着互联网技术的飞速发展,大数据已经成为新时代的商业新引擎。在商务领域,大数据的应用正在深刻改变着企业的运营模式、决策方式和市场竞...

网站推广 2024-12-17 阅读0 评论0

商赢大数据,驱动商业决策的智慧引擎

随着科技的飞速发展,大数据已经成为企业竞争的核心力量。商赢大数据作为一家专注于为企业提供大数据解决方案的公司,凭借其先进的技术和丰...

网站推广 2024-12-17 阅读0 评论0

喵贷,金融科技新势力,助力普惠金融发展

近年来,随着互联网技术的飞速发展,金融科技领域呈现出勃勃生机。喵贷作为一家金融科技公司,凭借其独特的运营模式和创新的产品,迅速在市...

网站推广 2024-12-17 阅读0 评论0