【问题标题】:How to avoid "if" nesting when need Multiple return values in pythonpython中需要多个返回值时如何避免“if”嵌套
【发布时间】:2020-03-15 20:52:36
【问题描述】:

像这样,假设我需要使用一些库函数(我无法更改它们),它返回一个值或 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)

【问题讨论】:

  • 你的问题不清楚。你的问题到底是什么?请查看how to ask 了解如何写出好问题。
  • 我英文不好,描述可能有点模糊。代码是伪代码。我搜索,找到link这个,但是不能使用参数。

标签: python


【解决方案1】:
if r := somefunction1(10) or somefunction2(someParameter):
    print(r)

【讨论】:

  • @krishna Woah,Python 8...欢迎来到 21 日,旅行者 :-)
  • 对不起,我是说Python3.8。
【解决方案2】:

试试这个:

def a_function(parameters):
    default_value = None

    apply_some_operation_on(parameters):
        if YouWantToReturnSomething:
            default_value = whatever_you_want_to_return

    return return_val

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

    • 谢谢,这个和this都不错。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-29
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多