How scipy.optimize.leastsq knows the order of parameters passed to it?
The order in which function parameters are passed is only ever not known when the function is defined with **kwargs (unnamed keyword arguments -- the function then has a dict called kwargs that contains them, obviously unordered).
When the function is defined with named parameters, though, the f(a=b, c=d) syntax does not create a dict -- it simply assigns the values to the corresponding named parameters within the function.
I want to model a data with gaussian with parameters (mu=1, sig=2, height=1) and pass initial parameters x0 = (0.8, 0.8, 0.9). 
I am wondering  how does the optimizer knows the order of parameters. I could have taken the parameters as (mu,height,sig) or in any other order.
Edit:
Gaussian model (mu=1,sig=1.5,height=0.8)
Initial parameters passed x0=(0.8,0.8,0.8)
How can I be sure that the optimizer understands it as (mu,sig,height) and not as (sig,mu,height)?