У меня есть функция 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)
Но я не могу найти что-то эквивалентное в питона.
EDIT: я, конечно, мог бы сделать:
result = f(x1, x2, x3, x4, x5) if five else f(x1, x2, x3, x4)
, но в моей ситуации x_i некоторые относительно длинные выражения, так что я бы предпочитаю не писать их дважды. Я мог бы хранить их в некоторых переменных и делать это, но мне было интересно, есть ли лучший способ.
Что такое 'f_5_args' и' f_4_args'? – Bahrom
Это 2 функции, которые принимают соответственно (и строго) 5 и 4 аргумента. – dhokas