繁体   English   中英

python中需要多个返回值时如何避免“if”嵌套

[英]How to avoid "if" nesting when need Multiple return values in python

像这样,假设我需要使用一些库函数(我不能更改它们),它返回一个值或 None,我想使用返回的值并将其传递给另一个函数。 如何避免同时使用多个if语句?

这是我的代码示例:

import random
def somefunction1(n):
    m=random.randint(0,n)
    if m>5:
        return None
    else:
        return m

def somefunction2(n):
    # like somefunction1

# ------way one
r1=somefunction1(10)
r2=somefunction2(someParameter)
if r1:
    print(r1)
elif r2:
    print(r2)

# --------way two
r1=somefunction1(10)
if r1:
    print(r1)
else:
    r2=somefunction2(someparameter)
    if r2:
        print(r2)
if r := somefunction1(10) or somefunction2(someParameter):
    print(r)

请检查这一点,如果您没有使用 out_put1 作为另一个函数的输入,那么您可以像这样使用。
如果 function1() 返回某个值,则 output_put 值将是该值。
否则,如果 function2() 返回某个值,那么 output_put 将是 function2() 的值,否则它将是 None

out_put =  function1() or function2()
if out_put:
    print(out_put)

尝试这个:

def a_function(parameters):
    default_value = None

    apply_some_operation_on(parameters):
        if YouWantToReturnSomething:
            default_value = whatever_you_want_to_return

    return return_val

暂无
暂无

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

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