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

2024-09-27 20:18:59 发布

您现在位置: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)

为什么两次回来?你知道吗


Tags: key函数instringreturnifvaluedef
2条回答

else子句中的return用于使用split函数返回之前的,返回原始字符串。块底部的返回用于返回发生分割函数后的值。你知道吗

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

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

一种是不拆分字符串的情况,另一种是拆分字符串的情况。你知道吗

相关问题 更多 >

    热门问题