yield生成器

# -*- coding: utf-8 -*-
__author__ = 'scott'


#生成器本质就是函数,只不过解释器interprator看到yield会停止
def myGen():
    yield 1
    yield 2
    yield 3
    return 4

def myFunc():
    return 4

print(myGen()) #返回结果并不是1,而是一个迭代器对象

#遍历生成器
for data in myGen():
    print(data)

print("next方法调用")
mygen = myGen()
print(next(mygen))
print(next(mygen))
print(next(mygen))
# print(next(mygen)) 再次调用就会报错 StopIteration: 4

# 结果如下:
# <generator object myGen at 0x102a9a4c0>
# 1
# 2
# 3
# next方法调用
# 1
# 2
# 3

在scrapy中可以yield不同的对象,scrapy会根据yield对象的不同而做不同的处理

Request(url,meta,callback)

results matching ""

    No results matching ""