Intercambiar argumentos de función

Al refactorizar el código, sería útil poder intercambiar argumentos de función. Cambio por ejemplo: func(foo[0], bar(), baz.spam) dentro func(baz.spam, foo[0], bar()) ¿Hay alguna manera de intercambiar argumentos a la izquierda / derecha, manteniendo los paréntesis y las comas en su...