[Python-ideas] values in vs. values out
steve at pearwood.info
Thu Jan 13 16:27:19 CET 2011
Luc Goossens wrote:
> Hi all,
> There's a striking asymmetry between the wonderful flexibility in
> passing values into functions (positional args, keyword args, default
> values, *args, **kwargs, ...) and the limited options for processing the
> return values (assignment).
You're not limited to returning tuples. You could return an object with
named attributes, or a namedtuple, or even just a dict. There's
precedence in the standard library, for example, os.stat.
Except in the case of tuple unpacking, this does mean that assigning the
result of the function call is a two stage procedure:
t = func(x, y, z)
a, b, c = t.spam, t.ham, t.cheese
but it does give you flexibility in adding new return fields without
having to update function calls that don't use the new fields.
More information about the Python-ideas