Very late addition to these long threads -- I'm loving the proposal.  I'm 
rather surprised though that the typing advantages of the pep have not been 
emphasized enough.  I have a lot of code that in order to get correct typing in 
a strict mode does something like this:

```
def move_pitches(pitches: list[Pitch]|None = None):
    non_none_pitches: list[Pitch]
    if pitches is None:
         non_none_pitches = []
    else:
         non_none_pitches = pitches
```

with the PEP, the typing becomes:

```
def move_pitches(pitches: list[Pitch] => []):
     ...
```

and not only is the variable typed properly and more simply from the start, but 
I get to use my preferred variable name throughout.

Since I do about 30% of my work in TypeScript, the idea that `=>` implies that 
the right side will be evaluated in some way and returned is a cognitive 
lightening not burden.  

I do think that the PEP should be stricter in defining whether if an 
implementation chooses to do the evaluating in two passes whether normal '=' 
arguments to the right can or cannot be referenced by late-bound arguments.  I 
initially read the PEP as saying that you might or might not be able to 
reference rightward normal arguments depending on the implementation.

 - Michael Scott Asato Cuthbert (music21)
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/HL6U6YGJAZQGCXXB3PSFIKEU3CPHE6F2/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to