Python yield StopIteration.value 获取函数的返回值
【摘要】 环境信息ModelArtsNotebookmindspore1.2.0-openmpi2.1.1-ubuntu18.04 代码示例def yield_test(): a = 1 # next() 遇到yield会停止,保存数据并返回后面的数值 yield a a += 1 yield a a += 1 yield a a += 1 y...
环境信息
- ModelArts
- Notebook
- mindspore1.2.0-openmpi2.1.1-ubuntu18.04
- Notebook
代码示例
def yield_test():
a = 1
# next() 遇到yield会停止,保存数据并返回后面的数值
yield a
a += 1
yield a
a += 1
yield a
a += 1
yield a
# 需要这个返回值,可是....next()遇到yield就停了。再next抛异常,如何办?
# 用StopIteration
return "work done"
test = yield_test()
while True:
try:
x = test.__next__()
print(x)
except StopIteration as e:
# e.value 就是 return 返回的值
print("return value is", e.value)
break
1
2
3
4
return value is work done
源码学习
help(StopIteration)
Help on class StopIteration in module builtins:
class StopIteration(Exception)
| Signal the end from iterator.__next__().
|
| Method resolution order:
| StopIteration
| Exception
| BaseException
| object
备注
- 欢迎各位同学一起来交流学习心得^_^
- 在线课程、沙箱实验、认证、大赛、论坛和直播,其中包含了许多优质的内容,推荐了解与学习。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)