[Python-ideas] PEP 560 (second post)

Terry Reedy tjreedy at udel.edu
Wed Sep 27 12:08:11 EDT 2017


On 9/27/2017 5:28 AM, Ivan Levkivskyi wrote:

> Abstract
> ========
> 
> Initially PEP 484 was designed in such way that it would not introduce
> *any* changes to the core CPython interpreter. Now type hints and
> the ``typing`` module are extensively used by the community, e.g. PEP 526
> and PEP 557 extend the usage of type hints, and the backport of ``typing``
> on PyPI has 1M downloads/month. Therefore, this restriction can be removed.

It seem sensible to me that you waited awhile to discover what would be 
needed.

> It is proposed to add two special methods ``__class_getitem__`` and
> ``__subclass_base__`` to the core CPython for better support of
> generic types.

I would not be concerned about anyone (mis)using reserved words.

If the new methods were for general use, I would question making them 
automatically class methods.  Having __new__ automatically being a 
static method is convenient, but occasionally throws people off.  But if 
they were only used for typing, perhaps it is ok.  On the other hand, I 
expect that others will use __class_getitem__ for the same purpose -- to 
avoid defining a metaclass just to make class[something] work.  So I 
question defining that as 'typing only'.

Without rereading the PEP, the use case for __subclass_base__ is not 
clear to me.  So I don't know if there are other uses for it.

-- 
Terry Jan Reedy



More information about the Python-ideas mailing list