python 的reduce原理是什么?

如果函数接收多个参数而只给reduce的参数队列不够数量参数,则会发生一下各种情况:

def func1(x,y,z):
    return x+y+z

def func2(x,y):
    return x+y

def func21(x,y=1):
    return x+y

def func3(x,y,z):
    return x+y+z

def func4(x,y,z=1):
    return x+y+z

by = [1]
by2 = [1,2]
print reduce(func1,by) # 1 ,两个以上参数只给一个,不执行return直接返回传人的唯一的值
print reduce(func2,by) # 1
print reduce(func21,by) # 1
print reduce(func4,by2) # 4
# print reduce(func3,by2) # error,3个参数给2个,就会报错


那么,各位是否知道在reduce 内部是如何判断以及返回的呢?

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^