# Dict display

    data = {

        key_a: local_a := 1,

        key_b: local_b := 2,

        key_c: local_c := 3,

    }

 

Isn’t this a set display with local assignments and type annotations? :o)

 

(I’m -1 on all of these ideas, btw. None help readability for me, and I read much more code than I write.)

 

Top-posted from my Windows phone

 

From: Nick Coghlan
Sent: Sunday, April 8, 2018 6:27
To: Chris Angelico
Cc: python-ideas
Subject: Re: [Python-ideas] PEP 572: Statement-Local Name Bindings,take three!

 

On 23 March 2018 at 20:01, Chris Angelico <rosuav@gmail.com> wrote:

> Apologies for letting this languish; life has an annoying habit of

> getting in the way now and then.

> 

> Feedback from the previous rounds has been incorporated. From here,

> the most important concern and question is: Is there any other syntax

> or related proposal that ought to be mentioned here? If this proposal

> is rejected, it should be rejected with a full set of alternatives.

 

I was writing a new stdlib test case today, and thinking about how I

might structure it differently in a PEP 572 world, and realised that a

situation the next version of the PEP should discuss is this one:

 

    # Dict display

    data = {

        key_a: 1,

        key_b: 2,

        key_c: 3,

    }

 

    # Set display with local name bindings

    data = {

        local_a := 1,

        local_b := 2,

        local_c := 3,

   }

 

    # List display with local name bindings

    data = {

        local_a := 1,

        local_b := 2,

        local_c := 3,

   }

 

    # Dict display

    data = {

        key_a: local_a := 1,

        key_b: local_b := 2,

        key_c: local_c := 3,

    }

 

    # Dict display with local key name bindings

    data = {

        local_a := key_a: 1,

        local_b := key_b: 2,

        local_c := key_c: 3,

    }

 

I don't think this is bad (although the interaction with dicts is a

bit odd), and I don't think it counts as a rationale either, but I do

think the fact that it becomes possible should be noted as an outcome

arising from the "No sublocal scoping" semantics.

 

Cheers,

Nick.

 

P.S. The specific test case is one where I want to test the three

different ways of spelling "the current directory" in some sys.path

manipulation code (the empty string, os.curdir, and os.getcwd()), and

it occurred to me that a version of PEP 572 that omits the sublocal

scoping concept will allow inline naming of parts of data structures

as you define them.

 

 

--

Nick Coghlan   |   ncoghlan@gmail.com   |   Brisbane, Australia

_______________________________________________

Python-ideas mailing list

Python-ideas@python.org

https://mail.python.org/mailman/listinfo/python-ideas

Code of Conduct: http://python.org/psf/codeofconduct/