有没有办法在函数调用参数中加入if语句?

2024-10-02 22:28:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我发现我们可以在函数调用参数中使用三元运算:

def foo(n):
    print(n)
^{pr2}$

我想知道是否有一种方法可以在函数调用参数中不使用else来使用if?所以如果是真的,就把a传给它,如果不是,就不要传递任何东西。在

我试过了

foo(a if a>b else pass)
foo(a if a>b)
foo(if a>b: a)
foo(a>b and a)

以上这些都不管用。在

谢谢你的帮助。在

编辑-----

对不起,让我重新表述一下我的问题。在

我要求的是一种方法来决定我是否应该根据条件通过这个论证。在

所以基本上,我必须调用一个需要很多夸克的函数,比如:

# function call
thefunc(
    a=1,
    b=2,
    c=3,
    d=4,
    e=5
    #...
)

所有的参数都是由我决定的选项,或者在某些情况下,是一个条件。在

因为参数列表太大了,所以不喜欢在if语句中编写函数调用,所以我需要知道有没有一种方法,比如:

thefunc(
    a=1,
    #if condition: b=2,
    c=3,
    ....
)

所以决定是否给夸格。如果没有也没关系,只是需要知道,谢谢。在


Tags: and方法编辑参数iffoodefpass
2条回答

三元运算符需要if和else子语句。您可以使用默认函数参数,而不是只使用if:

def foo(n=None):

如果需要,将None传递给函数:

foo(a if a > b else None)

然后检查None-非None参数:

^{pr2}$

如果你不介意丑陋的话。。。*语法将值列表转换为参数,因此可以使用:

foo(*[a] if a > b else [])

你是否应该是另一回事:-)

相关问题 更多 >