什么是pythonic方式来确定此功能是否成功?

时间:2013-01-12 19:29:01

标签: python exception exception-handling python-2.7

def get_connection_tag(connections_tag, connection_type):
    for child in connections_tag.children:
        concat = "".join(child.attributes)
        if connection_type in concat:
            return child
    return -1

此函数表现为搜索函数,用于查找connection_type中是否存在指定的connection_tag。如果成功则从connections_tag.children返回一个元素,但如果不成功则返回-1。

如果搜索功能成功,我想调用一个函数来修改这个子元素,但如果它不成功,我想调用一个函数来生成子元素。

我可以简单地使用返回的子级和Class调用isinstance(),或者我可以检查是否返回child == -1,但我觉得我错过了一种更合适的方法。也许与try / except和提出TypeError

有关

1 个答案:

答案 0 :(得分:2)

在这种情况下,返回“None”会更合适,因为它直观地表明没有找到连接。或者你也可以引发异常,如果执行必须停止或者是一个更严重的错误,我通常会引发异常。

根据您的用例,代码如下所示:

tag = get_connection_tag(connections_tag, connection_type)
if not tag:
    pass