【发布时间】:2016-07-12 14:42:51
【问题描述】:
我有一个函数f,它可以接受可变数量的参数,如下所示:
f = f_5_args if five else f_4_args
要拨打f,我目前正在这样做:
if five:
result = f(x1, x2, x3, x4, x5)
else:
result = f(x1, x2, x3, x4)
有没有更好的方法来调用f,也可以使用三元运算符或类似的东西?在 Lua 等其他语言中,我可以执行以下操作:
result = f(x1, x2, x3, x4, x5 if five else None)
但我在 python 中找不到等效的东西。
编辑:当然可以:
result = f(x1, x2, x3, x4, x5) if five else f(x1, x2, x3, x4)
但在我的情况下,x_i 是一些相对较长的表达式,所以我不想写两次。我可以将它们存储在一些变量中并执行此操作,但我想知道是否有更好的方法。
【问题讨论】:
-
f_5_args和f_4_args是什么? -
它们是 2 个函数,分别(并且严格地)接受 5 个和 4 个参数。
标签: python arguments optional ternary-operator