Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
确定此功能是否成功的Python方式是什么?_Python_Exception_Exception Handling_Python 2.7 - Fatal编程技术网

确定此功能是否成功的Python方式是什么?

确定此功能是否成功的Python方式是什么?,python,exception,exception-handling,python-2.7,Python,Exception,Exception Handling,Python 2.7,此函数用作搜索函数,以查找指定的连接类型是否存在于连接标签中。如果成功,它将从connections\u tag.children返回一个元素,但如果失败,它将返回-1 如果搜索函数成功,我想调用一个函数来修改这个子元素,但是如果不成功,我想调用一个函数来生成一个子元素 我可以简单地用返回的子级和类调用isinstance(),或者检查返回的child==-1,但我觉得我缺少了一种更合适的方法。可能与try/except和引发TypeError?有关,在本例中,返回“None”更合适,因为它直观

此函数用作搜索函数,以查找指定的
连接类型
是否存在于
连接标签
中。如果成功,它将从
connections\u tag.children
返回一个元素,但如果失败,它将返回-1

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

我可以简单地用返回的子级和类调用
isinstance()
,或者检查返回的
child==-1
,但我觉得我缺少了一种更合适的方法。可能与try/except和引发
TypeError

有关,在本例中,返回“None”更合适,因为它直观地表明未找到任何连接。或者,您也可以引发异常,我通常会在执行必须停止或是更严重的错误时引发异常

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

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

返回
-1
非常奇怪,最好是引发一个keyrerror或不返回任何值。返回-1是C语言的东西。此函数在看到第一个子函数后返回,它从不循环。你确定这就是你需要的吗?@dan_waterworth如果你还没猜到的话,我是Python新手。我选择返回-1只是因为字符串方法在找不到东西时会这样做。我现在肯定会改变我的做法。有人知道为什么我的问题返回-1吗?
tag = get_connection_tag(connections_tag, connection_type)
if not tag:
    pass