之前小编带领大家认识了return和yield,知道了他们
它们在定义函数的过程中都是返回值,而且都是在函数或方法的主体中用来返回执行结果的,但是有什么区别呢?什么时候用return,什么时候用yield?下面就来看看我的足迹吧~
yield:
1、是暂停函数
2、返回值后继续执行函数体内代码,
3、返回的是一个迭代器(yield本身就是一个生成器——生成器是用来生成迭代器的);
精髓理解:返回后函数执行暂停
return:
1、是结束函数;
2、返回值后不再执行函数体内代码.
3、返回的是一个普通的可迭代对象(list、set、dict等有实际内存地址的存储对象)
精髓理解:返回后函数执行结束
具体区别:
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 内存错误。
Yield:返回结果后,函数不结束,在yield返回值后暂停。再次调用时,在暂停的地方继续执行;它可以执行多次,直到函数结束。
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和yield的区别。你学会了吗?更多学习建议:
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python中的len是什么意思08/13
- ♥ python3判断key是否存在于字典中09/13
- ♥ lstrip() 截断python中的字符11/24
- ♥ python Helium库是如何实现web自动化的?11/14
- ♥ 如何在 Python 中将元组转换为列表08/16
- ♥ Python sklearn 中如何使用算法?12/21
内容反馈