[Python-Dev] Re: Presenting PEP 695: Type Parameter Syntax

2022年7月16日 00:35:33 -0700

Paul Ganssle writes:
 > If you didn't already know what the square brackets did, how would
 > you try and find out?
First I'd look it up in Python Essential Reference (Hi, @dabeaz! it
won't be there, though ;-). Then I'd go to the Language Reference for
"def" and "class". And if that failed, then I'd go buy Barry Warsaw
lunch.
OK, not everybody has a personal relationship with senior core devs,
but is asking people to read the Language Reference really so bad?
 > An additional benefit is that I find some of these examples to be a bit 
 > visually cluttered with all the syntax:
 > 
 > def func1[T](a: T) -> T: ... # OK
 > class ClassA[S, T](Protocol): ... # OK
Looks like the boomer version (square*) of C++ template variables. Of
course, people learn Python to escape from C++, so maybe that's not
persuasive.
* telling you how old I am without telling you how ooooold I am
 > Which would look less cluttered with a prefix clause:
 > 
 > @with type T def func1(a: T) -> T: ... # OK
 > @with type S @with type T class ClassA(Protocol): ... # OK
For me, that's absolutely awful from a readability standpoint. Put
the "def" or "class" 10-20 characters in from the margin?
I guess "stacked" it's no less readable than any decorator, but I also
don't like overloading the well-defined decorator notation with magic.
@with type T
def func1(a: T) -> T: ... # OK
@with type S
@with type T
class ClassA(Protocol): ... # OK
A thought: would it be possible to actually make it a with statement?
with Typevar() as T:
 def func1(a: T) -> T
Of course there might have to be magic in Typevar, but it would be far
more palatable to me than giving unary @ two kinds of magic.
IMO YMMV of course.
_______________________________________________
Python-Dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/[email protected]/message/UTVCFIZ4CM3362JANAOBPEGJUTAWKSCI/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to