关于Python中yield的一些个人见解
i ( (( i*2 i yield_test(5(i,)
最近在scrapy爬虫方面接触了很多yield,找了很多网上的资料,很多大神都给出了很透彻的理解方法。但是由于我是菜鸟一个,对于一些很专业的解释看得似懂非懂。于是乎找了一段代码,自己在pycharm中一步步调试,终于弄懂了yield的工作原理。
样例代码中定义了两个方法yield_test以及call,将会在接下来的迭代中调用。
首先,我们将一个参数“5”传进yield_test方法中,代码将会执行到以下步骤。
for i in range(n):
代码将会生产一个[0,1,2,3,4]的列表,将会在该列表中进行迭代,此时i=0,开始进行迭代
代码运行到
yield call(i)
时,将会将i=0传入到 call()方法中,返回一个运算结果"0"
接下来生成器yield将会执行一个类似return的操作,将i=0返回到
网友评论