简体   繁体   English

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

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

I want to return values from multiple if condition from a same function in python and afterwards want to use all the return values from each if condition.我想从python中的同一个函数返回多个if条件的值,然后想使用每个if条件的所有返回值。 Is it possible????是否可以????

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)

I want both result_failure and test_failure values.我想要 result_failure 和 test_failure 值。 Is there a way except creating separate functions for each of them?除了为每个函数创建单独的函数之外,还有什么方法吗?

I don't exactly know what you want to achieve, but probably just returning multiple values will help you:我不完全知道你想要实现什么,但可能只是返回多个值会帮助你:

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)

Like this you can return multiple variables with one function.像这样,您可以使用一个函数返回多个变量。 Just separate them with a comma.只需用逗号分隔它们。 They will be returned as a tuple.它们将作为元组返回。 To fetch them separate you can also declare 2 variables separated with a comma with your function.要将它们分开,您还可以声明 2 个变量,用您的函数用逗号分隔。

But in your example result_failure and test_failure are getting the same value.但是在您的示例中 result_failure 和 test_failure 获得相同的值。 And your if-statements seem redundand, because you just trigger them with the string above that you set yourself.你的 if 语句似乎是多余的,因为你只是用你自己设置的字符串触发它们。 So if this wasn't helpful it would be interesting what your goals are with this script.因此,如果这没有帮助,那么您使用此脚本的目标会很有趣。

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

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