On Fri, Mar 20, 2020 at 2:37 AM Terry Reedy <tjre...@udel.edu> wrote:
>
> On 3/18/2020 10:28 PM, Santiago Basulto wrote:
>
> > For dictionaries it'd even be more useful:
> >      d = {
> >          'first_name': 'Frances',
> >          'last_name': 'Allen',
> >          'email': 'fal...@ibm.com'
> >      }
> >      fname, lname = d[['first_name', 'last_name']]
>
> Insert ordered dicts make this sort of thing less useful.
>
>  >>> d = {
>          'first_name': 'Frances',
>          'last_name': 'Allen',
>          'email': 'fal...@ibm.com'
> }
>  >>> fname, lname, _ = d
>  >>> fname, lname
> ('first_name', 'last_name')
>

Uhh, great, but the OP wanted fname = "Frances" and lname = "Allen" :)

But even using d.values() here isn't really a solution. It's assuming
positional information where the code really wants to be grabbing
named attributes.

JavaScript has an elegant syntax for object destructuring:

let { first_name, last_name } = d

Python can do this for positional unpacking, but not for named
attributes. The OP's proposal would allow the existing unpacking
syntax to be used for this, simply by returning an unpackable entity
(a list or tuple).

ChrisA
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to