On 2021-04-02 at 19:25:07 -0300, Marco Ippolito <maroloc...@gmail.com> wrote:
> > (a) basic linear presentation: > > > > resource = "Oil" > > time = 1 > > crude = 2 > > residue = 3 > > my_list = "long" > > > > (b) using explicit tuples: > > > > ( resource, time, crude, residue, my_list ) = ( "Oil", 1, 2, 3, "long" ) > > > > (c) linear and indented tuples: > > > > ( > > resource, > > time, > > crude, > > residue, > > my_list > > ) = ( > > "Oil", > > 1, > > 2, > > 3, > > "long" > > ) > > Choose: (a). I agree. That said, I sometimes end up with something like this: ( resource, time, crude, residue, my_list ) = \ ( "Oil", 1, 2, 3, "long" ) which mitigates matching up which value goes with which name. But as soon as either tuple overflows one physical line, it's back to (a). I did go through a phase where I tried (c); note the past tense. > In (b) I have a problem matching identifiers to values horizontally at > a glance and in (c) I have the same problem vertically: i.e. "is 3 the > value for residue or crude above/to-the-left?" > > Cognitive burden slows down and fatigues. Yep. > Alternatively, if the data "fits together", use a `namedtuple` with > kwarg initialisation or structured data types like `dataclasses`. IMO, that's usually more troule than it's worth, although thing = new_thing( resource="Oil", time=1, crude=2, residue=3, my_list="long") is often better than a collection of positional parameters. -- https://mail.python.org/mailman/listinfo/python-list