python人生如初见之初见yield
今天学习爬虫Scrapy框架搭建的时候,了解了yield的用法。了解一个东西,无外乎 WHAT? HOW? WHY?
WHAT
yield英文意思是屈服,退位,放弃。额。。。其实它是Python中的一个关键字。通俗的来说,你再IDLE中打出来会变黄。(>)<)
HOW
二话不说先举个例子
def test_yield(n): for i in range(n): yield i**2 for i in test_yield(5): print(i, " ",end="")
输出什么?自己试试,还是先说吧
你就坐不住了,这这和return有什么区别呢????
下面再写个return
def sqare(n): ls = [i**2 for i in range(n)] return ls for i in sqare(5): print(i, " ",end="")
输出什么?还用说吗 >)
没错我初见的yield就是这样用的,看似和return差不多
前方高能
FALSE WHY
既然和return用法差不多,那why yield????
那么你可以试试这样
def sqare(n): ls = [i**2 for i in range(n)] return ls for i in sqare(1000000000000000000000000000000): print(i, " ",end="")
傻脸了吧 : )
你再试试这样
def yield_test(n): for i in range(n): yield i**2 for i in yield_test(1000000000000000000000000000000): print(i, " ",end="")
是不是感觉良好的不得不的了哈哈哈
原理还要说吗,还是说说,避免我以后忘了。: )
TRUE WHY
Advantage 1
yield关键字它可以在循环执行一次后冻结循环,冻结!!! !不等于重新开始!!!
所以当你用for循环调用它的时候,它可以一次次的输出,不像return一样非要一次性输出,大大加强了程序可观性。
Advantage 2
yield的一次次输出,让它输出的结果只占用一个元素的存储空间
RETURN是兄弟
其实没有什么可比性
适当的时候,选用适当的关键字,所有的所有,才构成了最great的程序
YIELD深层次
yield关键字用的地方很多很多,Scrapy爬虫框架什么的,继续学习。
人生若只如初见,何事秋风悲画扇。
相关推荐
YENCSDN 2020-11-17
lsjweiyi 2020-11-17
houmenghu 2020-11-17
Erick 2020-11-17
HeyShHeyou 2020-11-17
以梦为马不负韶华 2020-10-20
lhtzbj 2020-11-17
夜斗不是神 2020-11-17
pythonjw 2020-11-17
dingwun 2020-11-16
lhxxhl 2020-11-16
坚持是一种品质 2020-11-16
染血白衣 2020-11-16
huavhuahua 2020-11-20
meylovezn 2020-11-20
逍遥友 2020-11-20
weiiron 2020-11-16