jks@...397... wrote:

Arguably Matlab has the elegant Lisp-like feature lacking in Python of

multiple return values. In Lisp you can write(setq x (floor 3.14))

to set the value of x to 3, or

(multiple-value-setq (x y) (floor 3.14))

to set the value of x to 3 and the value of y to 0.14. Note how it is

left up to the caller of the FLOOR function whether to capture just

the first returned value or both of them. This is paralleled by

Matlab'sx = some_function(a,b,c)

[x,y] = some_function(a,b,c)where the caller decides how many values will be returned.

Note that you can simply "emulate" this missing Python feature by appending indexes after your function call:

x = some_function(a,b,c)[0]

x, y = some_function(a,b,c)[:2]

and so on...

Naturally this does not save computation as nargout could do, but is this really an issue? IMHO this is generally not.

JM. Philippe