Python,为什么返回参数切换时不起作用?

时间:2013-01-09 02:04:01

标签: python python-3.x return

我正在学习Python并使用3.3版本。

我发现了一个我无法理解的“返回”问题。

案例1.确定案例,当“return”按预期返回值时。

def switch(a,b):
    print ("inputed values:", "a is",a, ", b is",b)
    if b==0:
        print (a)
        return a
    elif b>a:
        switch(b,a)

print(switch(15,0))

执行时:

输入值:a为15,b为0

15

15

案例2.问题的情况是,当“返回”返回“无”时,尽管“打印”会打印该值。

def switch(a,b):
    print ("inputed values:", "a is",a, ", b is",b)
    if b==0:
        print (a)
        return a
    elif b>a:
        switch(b,a)

print(switch(0,15))

执行时:

输入值:a为0,b为15

输入值:a为15,b为0

15

两种情况之间的区别在于,在执行第二个“elif”分支时,将切换值并使用切换值再次调用该函数。但在第二种情况下,返回是“无”。 为什么在第二种情况下它不会返回“a”值?

1 个答案:

答案 0 :(得分:3)

在切换第二个if语句

之前添加一个return语句
return switch(b,a)

switch方法返回一个但缺少的return语句意味着不返回switch语句返回的值,因此返回默认的None