首页 > 解决方案 > 从python中的同一函数返回多个if条件的值

问题描述

我想从 python 中的同一个函数的多个 if 条件返回值,然后想使用每个 if 条件的所有返回值。可能吗????

class Failure():
  
@staticmethod
def user_failure(input):
    bad_char = ['(', ')']
    failure_reason = re.findall("(FAIL)(.*)", input)[0][1]
    failure_reason = ''.join(
        i for i in failure_reason if not i in bad_char).strip()
    return failure_reason

def get_failure_reason(self):
    result = 'RESULT                => FAIL(Failure includes TCs)'
    test = 'Test                  => FAIL (Test log not found)'

    if 'FAIL' in result:
        result_failure = Failure.user_failure(result)
        return result_failure

    if 'FAIL' in test:
        test_failure = Failure.user_failure(test)
        return test_failure

obj = Failure()
output = obj.get_failure_reason()
print(output)

我想要 result_failure 和 test_failure 值。除了为每个函数创建单独的函数之外,还有其他方法吗?

标签: pythonpython-2.7if-statementreturn-valuemultiple-return-values

解决方案


我不完全知道你想要实现什么,但可能只是返回多个值会帮助你:

def get_failure_reason(self):
    result = 'RESULT                => FAIL(Failure includes TCs)'
    test = 'Test                  => FAIL (Test log not found)'

    if 'FAIL' in result:
        result_failure = Failure.user_failure(result)

    if 'FAIL' in test:
        test_failure = Failure.user_failure(test)

    return result_failure, test_failure

result_failure, test_failure = obj.get_failure_reason()
print(result_failure, test_failure)

像这样,您可以使用一个函数返回多个变量。只需用逗号分隔它们。它们将作为元组返回。要单独获取它们,您还可以在函数中声明 2 个用逗号分隔的变量。

但是在您的示例中, result_failure 和 test_failure 获得了相同的值。而且您的 if 语句似乎是多余的,因为您只需使用上面设置的字符串来触发它们。因此,如果这没有帮助,那么您对这个脚本的目标是什么会很有趣。


推荐阅读