python 中的yield和return的区别

yield

  • 函数中有yield 的函数,返回的是一个生成器对象,该对象可以迭代遍历和通过next()方法取出对象中的值。比较节约内存空间。保存的是生成数据的方式。可以达到随用随取的效果。
def func():
    start_time = time.time()
    list = []
    for i in range(1, 100000000):
        list.append(i)
    end_time = time.time()
    cost_time = end_time - start_time
    print(cost_time)
    yield list
func() # 随用随取,节省内存空间。
next(func())

return

  • 在函数中,结束该函数的运行,return 后面的代码块不会执行,返回该函数的执行结果。
def func():
    start_time = time.time()
    list = []
    for i in range(1, 100000000):
        list.append(i)
    end_time = time.time()
    cost_time = end_time - start_time
    print(cost_time)
    return  list # 相同的代码
func() # 函数报错,meryerror 内存错误。

猜你喜欢

转载自blog.csdn.net/weixin_44224529/article/details/89433445