return和yield有什么区别吗?
之前小编带领大家认识了return和yield,知道了他们都是定义函数过程中返回值,都用在函数或方法体内,用于返回执行的结果,可是具体有什么区别呢?在什么时候用return,什么时候用yield呢?下面跟着小编的脚步来看看吧~
yield:
1、是暂停函数
2、返回值后继续执行函数体内代码,
3、返回的是一个迭代器(yield本身是生成器-生成器是用来生成迭代器的);
精髓理解:返回后函数执行暂停
return:
1、是结束函数;
2、返回值后不再执行函数体内代码.
3、返回的是正常可迭代对象(list,set,dict等具有实际内存地址的存储对象)
精髓理解:返回后函数执行结束
具体区别:
return:返回结果后,函数不再继续执行,彻底结束;只执行一次,函数结束
调用方式:函数() 直接执行函数
deffunc():start_time=time.time()list=[]foriinrange(1,100000000):list.append(i)end_time=time.time()cost_time=end_time-start_timeprint(cost_time)returnlist#相同的代码func()#函数报错,meryerror内存错误。
yield:返回结果后,函数不结束,yield返回值后暂停,再次调用时,在暂停的地方继续执行;可执行多次,直到函数结束
deffunc():start_time=time.time()list=[]foriinrange(1,100000000):list.append(i)end_time=time.time()cost_time=end_time-start_timeprint(cost_time)yieldlistfunc()#随用随取,节省内存空间。next(func())
比较节约内存空间。保存的是生成数据的方式。可以达到随用随取的效果。
猜你喜欢内容
-
安装专业有哪些
安装工程是一个广泛领域,涵盖了多个专业方向,确保工程从设计到施工再到设备供应的顺利进行。以下是一...
-
如何考培训师资格证
要考取培训师资格证,您可以遵循以下步骤:国内流行的培训师资格证包括国家职业资格证、企业内部认证和...
-
语文相近专业有哪些
语文相近的专业主要包括以下几类:研究中国语言的词语、句法,赏析古今诗歌、散文、小说等文学作品,并...
-
工程专业类型有哪些
工程类专业是一个广泛且多样化的领域,涵盖了从基础设施建设到高端技术应用的多个方面。以下是一些主要...
-
永川中职有哪些专业
永川中职学校开设的专业相当丰富,涵盖了多个领域,以满足不同学生的兴趣和职业规划。以下是一些主要的...
-
非学生如何考英语四六级
非学生想要考取英语四级(CET-4),有以下几种途径可以考虑:非在校生可以通过社会考生身份报名参加英语...
-
幼师资格证跳舞怎么考
要考取舞蹈幼师资格证,您可以按照以下步骤进行:年龄要求:通常要求16岁以上。学历要求:大专及以上学...
-
船员驾驶员资格证怎么考
要考取船员驾驶员资格证,需要遵循以下步骤:首先,需要到船员服务部进行为期三天的学习,通过学习后参...
-
表演的专业有哪些
学表演的专业主要包括以下几种:培养从事戏剧、电影、电视剧等表演工作的专业人才。艺考内容包括自我介...
-
评审职称专业有哪些
职称评审涉及的专业非常广泛,以下是一些常见的专业类别:土木工程建筑工程机械工程电子工程化学工程计...