一、 yield 和 return 之间的小区别
1、相同点:
两者 均可 将内容 返回给调用者
2、不同点:
取值:return 可以从调用者那里直接打印处理来,yield 需要通过next()方法 取获取值
运行方式:⑴、方法运行到 return 后 会结束该方法,return 后的内容 不再执行
⑵、方法运行到 yield 后 同样也会结束该方法的运行,下次调用会接着
yield 后边的内容继续运行(前提是 必须 是同一个实例对象 多次调用同一个方法,之前
曾遇到过一些坑,后边说)
举例1:
def test():
return '1'
def test1():
yield '2'
print(test()) --得到的结果 为 1
print(test1()) -- 得不到任何结果,原因 yield 返回的是 一个迭代器(可以被迭代的容易,
可以想象成返回的是 一个列表,里边只有一个元素 2,我们取出里边的值 只能通过 next()的方法)
print(next(test1())