问题描述
def func1(*args): 对于 args 中的 i: 打印(i)
func1(10,20,34)
在上面的代码中,我以如下所示的方式得到输出:
10 20 30
现在,当我以这种方式编码时,我不会像上面的编码那样得到输出
def func1(*args): 对于 args 中的 i: 返回(i)
打印(func1(10,30))
---------输出------- 10
??为什么这里只打印 10 而不是参数中传递的所有值
解决方法
??为什么这里只打印 10 而不是参数中传递的所有值
循环 for i in args: …
将遍历 …
主体三次,对每个参数 10
、20
和 30
各一次,但前提是不会过早退出,而且当您使用 10
时,会在第一个循环运行参数 return(i)
时发生这种情况,因为 return
立即离开函数并且不会返回。
另一种选择
def func1(*args):
for i in args: yield i
这样你就可以print(*func1(10,20,30))
。