python中print,return和yield的区别
发布日期:2021-05-09 04:01:46 浏览次数:12 分类:博客文章

本文共 733 字,大约阅读时间需要 2 分钟。

def func1():    for i in range(1, 5):        print idef func2():    for i in range(1, 5):        return idef func3():    for i in range(1, 5):        yield ifunc1() print func2()print func3()

 

1.print并不会阻断程序的执行,就不用多说了。

2.func2()方法中的循环执行第一次就被return结束掉了。(后面的2、3、4就不会有返回的机会了)

3.yield你可以通俗的叫它"轮转容器",可用现实的一种实物来理解:水车,先yield来装入数据、产出generator object、使用next()来释放;好比水车转动后,车轮上的水槽装入水,随着轮子转动,被转到下面的水槽就能将水送入水道中流入田里。

def func3():    for i in range(1,5):        yield i#装入 gob = func3()#generator 类型print next(gob)#1    释放的第一个装入的数据,(先入先出)print next(gob)#2print next(gob)#3print next(gob)#4 print next(gob)#报错

个人理解,yield在python内部是当作list处理的:

def func3():    for i in range(1,5):        yield i        yi = []yi = func3()for y in yi:    print y     1234

 

上一篇:jQuery中的getJSON()
下一篇:微信去除 防欺诈盗号请勿支付或输入qq密码 以及 防欺诈或盗号请不要输入qq密码 的方法

发表评论

最新留言

感谢大佬
[***.8.128.20]2025年04月10日 11时52分34秒