时间:2022-10-09 17:56:07 | 浏览:295
要理解yield的作用,你必须理解生成器是什么。在理解生成器之前,必须先理解迭代器。
1.迭代器
当您创建一个列表时,你可以逐个读取它的项。逐项读取其项称为迭代:
mylist是一个可迭代的对象。当你使用列表解析式时,你创建了一个列表,因此也是一个迭代器:
所有你可以用"for... in ...."都是迭代器,包括列表、字符串、文件…等等。
这些迭代器非常方便,因为你可以随心所欲地读取它们,但是你将所有的值都存储在内存中,当你有很多值时,这就非常浪费内存了。
为了解决这样的问题,Python有了生成器的概念。
2.生成器
生成器是迭代器,这种迭代器只能迭代一次。生成器不会将所有值都存储在内存中,它们会动态生成这些值:
它和列表解析式是类似的,只是用代替了。但是,你不能在mygenerator中对i执行第二次,因为生成器只能使用一次:它print(0),然后忘记它,print(1),最后是4。
3.Yield
yield是一个与return类似的关键字,只是函数将返回一个生成器。
认真看完下面这个例子,你应该能完全明白。
函数将返回一组只需要读取一次的值。如果你能将这个特性理解清楚,并将其应用到你的代码中,可能可以极大地提高性能,下次我们将介绍在什么时候该用它。
请注意示例中的第6行,在调用函数时,在函数体中编写的代码不会运行。函数只返回生成器对象,可别忘了这个重点。
最后,你的代码将从每次使用生成器时停止的地方继续。因此示例中第二次使用生成器的时候,我们的生成器已经完全没有值了。
所以最核心的逻辑如下:
1. for函数第一次调用从函数创建的生成器对象时,它将从头运行函数中的代码,直到达到yield,返回循环的第一个值。
2. 随后的调用都将再次运行你在函数中编写的循环,并yield返回下一个值,直到没有要返回的值为止,就如我们上面的例子所示。
如果你喜欢我们今天的Python 教程,请持续关注我们,如果对你有帮助,麻烦在下面点一个赞/在看,记得给个三连哦!
苹果公司2022财年第三财季业绩显示,公司净营收为82959亿美元,较去年同期的81434亿美元相比增长2%;iPhone14的即将发布,产业链相关公司均表示乐观。华泰证券认为,苹果对下一季度的指引或能增强市场对产业链今年三季度的增长信心,建议持续关注iPhone14销量情况,新机第一波的销售情况和口碑可能会决定四季度苹果产业链公司的订单是否饱满。
近日又有关于华为Mate50的新爆料发布,根据爆料显示,此次华为Mate50将首发京东方的全新柔性屏,该屏幕采用LTPO技术,可以将刷新率做到1-120Hz动态调整,而该技术也和iPhone14Pro的ProMotion的1Hz刷新率和息屏显示相媲美。
每年关于新iPhone的传闻,除了配置的悬念外,还会经常听到关于京东方的消息,每年都会有消息称京东方将供货苹果,可年年不见京东方屏幕出现在iPhone上,iPhone12/13标准版均为LG、三星供货,Pro版几乎清一色三星屏。
4月8日消息,日经亚洲报道,京东方表示计划今年将OLED面板的交付量提升70%,产量将从2021年的6000万个提升到今年的1亿个。iPhone14预计将继续采用60Hz刷新率的OLED面板,京东方仍会是屏幕供应商之一。
---------------------------------去年,iPhone12系列未发布之前,苹果供应链相关人士称,京东方成为苹果供应链厂商,将为iPhone12系列提供OLED面板。5月12日,韩媒再次报道称,京东方其实是无缘为iPhone13系列提供LTPOOLED面板,但依旧会提供普通的柔性OLED面板,被应用于iPhone13/mini两个版本中。
9月16日消息,据韩媒TheElec报道,苹果已经向京东方提供了有条件批准,后者有望为iPhone13生产OLED面板。苹果这几年,一直有意扶持京东方,以此来牵制另外两家屏幕供应商,即韩企三星显示和LGDisplay,以此来压低他们的供货价格。
事实上,京东方在2017年就成为了苹果的供应商,只是早期仅为iPad、MacBook、AppleWatch供应屏幕,而iPhone上的OLED屏一直由三星、LG供应。有意思的是,伴随着京东方好消息传来的同时,韩媒也开始来“黑”了,韩国媒体《TheElec》报道指称,到目前京东方的的OLED屏出货量已经连续四个月暴跌。
按照Omdia的说法,在3季度推出的iPhone14系列上,京东方与三星、LGD,依然是苹果OLED屏的三大供应商。且按照Omdia的说法,今年,京东方供屏占比翻番,达到到15%,然后LGD占比25%,三星依旧最多,达到60%。
关于加入iPhone供应链一事,京东方董事长陈炎顺曾在8月31日的投资者会议上表示,京东方是苹果公司的合格供应商,我们双方保持良好的合作关系,“我们会全力以赴为客户提供最好的产品和服务”。陈炎顺没有正面的回应,让京东方屏幕最终能否成功进入iPhoneOLED面板供应链一事更加扑朔迷离。
2017-12-05 05:29:00 作者:庞超不知不觉,2017年即将在一个月后正式结束了,在这一年又有许多新奇好用的数码产品来到我们身边,让我们的工作和生活变得更加方便、快捷,也给我们带来了许多欢乐。