python返回值的疑问

慕飒潇湘 2020-09-03 06:05:37
我写了一个tkinter界面exe小软件,使用botton调用我前期写好的函数方法,问题就在这个函数方法里面需要进行for遍历得到多个返回值的时候不能使用return,因为return的特性是有第一个返回值的时候就停止运行,如何接收其他返回值?我想函数调用能得到0,1,2,3,4怎么写这块的代码?
例如:

# !/usr/bin/env python
# -*- coding: utf-8 -*-
def main():
for i in range(5):
return i
a = main()
print(a)
...全文
117 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
rrrr336 2020-09-04
  • 打赏
  • 举报
回复
yield 就是一种return, 不同的是 yield 返回的是一个 generator 对象
慕飒潇湘 2020-09-04
  • 打赏
  • 举报
回复
引用 2 楼 rrrr336 的回复:
你把return 改成 yield 试试看行不行, 它将产生 一个 生成器 a, 用 next(a) 读。 不知是不是你需要的
def main():
    for i in range(5):
        yield i
a = main()
print(next(a))
print(next(a))
print(next(a))
# will print 0 1 2 respectively
这就是我需要的,谢谢,这个yield就是return吗
rrrr336 2020-09-04
  • 打赏
  • 举报
回复
你把return 改成 yield 试试看行不行, 它将产生 一个 生成器 a, 用 next(a) 读。 不知是不是你需要的
def main():
    for i in range(5):
        yield i
a = main()
print(next(a))
print(next(a))
print(next(a))
# will print 0 1 2 respectively
慕飒潇湘 2020-09-04
  • 打赏
  • 举报
回复
虽然套用我目前的问题是最合适的,但是感觉还是有些不合适,可能我的编程逻辑有点问题,不过还是感谢答疑...
慕飒潇湘 2020-09-03
  • 打赏
  • 举报
回复
return i 前面还有很多数据操作,也就是遍历说才有不同的返回值,这里只是举例说明

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧