我从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)
为什么两次回归?
答案 0 :(得分:1)
一个用于不拆分字符串的情况,另一个用于拆分字符串的情况。
答案 1 :(得分:0)
else子句中的return用于使用split函数在 之前返回 ,返回原始字符串。块底部的返回用于在 发生拆分功能后返回值 。
在大多数编程语言中使用多个返回是很常见的,并且当您知道不需要运行函数的其余部分时,通常用于中断函数。当你达到异常条件时非常有用,在那里你可以只返回一个特殊情况,函数调用者可以接收并知道发生了错误。
请注意,有些人认为它是不好的风格,特别是如果它导致不一致的行为(就像你的例子中那样)。