python中的yield与return

2018-05-10  本文已影响0人  Gambler_194b

yield与return的功能都是返回程序执行结果,但是yield返回执行结果并不中断程序执行,return在返回执行结果的同时中断程序执行。

例如我们经常使用for循环来遍历:

return 实现

def  func():

     test_list  =  []

     for  i  in  range(10):

            test_list.append( i )

      return  i

fun = func()

print(fun)        #   [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

yield实现

def func():

    for i in range(10):

         yield i

fun = func()

print(fun)               #  <generator  object  func  at  0x7f4cb265bb48>

print(next(a))         #  0

print(next(a))         #  1

print(next(a))         #  2

可以看出,yield 输出的是一个对象,相当于是一个容器,想取什么数据就取出什么,而return 只会返回一个值,且return后面的代码不会执行。

上一篇 下一篇

猜你喜欢

热点阅读