繁体   English   中英

从python中的同一个函数返回多个if条件的值

[英]Return values from multiple if condition from a same function in python

我想从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 值。 除了为每个函数创建单独的函数之外,还有什么方法吗?

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

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 语句似乎是多余的,因为你只是用你自己设置的字符串触发它们。 因此,如果这没有帮助,那么您使用此脚本的目标会很有趣。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM