缺少"返回"在函数Python的末尾

时间:2017-01-26 02:45:48

标签: python return

相当愚蠢的问题,但......

def gcd(a, b):
    if a < b:
        a, b = b, a
    if a == 0:
        return b
    elif b == 0:
        return a
    return gcd(b, a % b)

所以当函数末尾没有return时,为什么代码会返回None?当它被递归调用并且ab最终等于0时,它会满足if条件吗?然后它应该返回非零值。

1 个答案:

答案 0 :(得分:3)

如果ab都不等于零,则前两个返回语句都不会被执行。

如果没有最终返回,控制流到达函数的末尾而不会返回return语句,因此返回default value of None