Распаковка аргументов: только именованные аргументы могут следовать за * выражением
В Python прекрасно работает следующее:
def f(x,y,z): return [x,y,z]
a=[1,2]
f(3,*a)
Элементыa
распаковать, как если бы вы назвали это какf(3,1,2)
и он возвращается[3,1,2]
, Замечательно!
Но я не могу распаковать элементыa
вfirst два аргумента:
f(*a,3)
Вместо того, чтобы называть это какf(1,2,3)
, Я получаю & quot; SyntaxError: только именованные аргументы могут следовать за * выражением & quot ;.
Мне просто интересно, почему так должно быть, и если есть какая-нибудь хитрая уловка, о которой я мог бы не знать для распаковки массивов в произвольные части списков аргументов без обращения к временным переменным.