为什么这个python函数有两次返回?

时间:2016-12-14 00:59:40

标签: python

我从Head First找到了如下的Python函数:

def san(string):
    if ':' in string:
        spliter = ':'
    elif '-' in string:
        spliter = '-'
    else:
        return string
    (key, value) = string.split(spliter)
    return (key, value)

为什么两次回归?

2 个答案:

答案 0 :(得分:1)

一个用于不拆分字符串的情况,另一个用于拆分字符串的情况。

答案 1 :(得分:0)

else子句中的return用于使用split函数在 之前返回 ,返回原始字符串。块底部的返回用于在 发生拆分功能后返回值

在大多数编程语言中使用多个返回是很常见的,并且当您知道不需要运行函数的其余部分时,通常用于中断函数。当你达到异常条件时非常有用,在那里你可以只返回一个特殊情况,函数调用者可以接收并知道发生了错误。

请注意,有些人认为它是不好的风格,特别是如果它导致不一致的行为(就像你的例子中那样)。