[Python-Dev] Make __class_getitem__ a class method
levkivskyi at gmail.com
Fri Dec 15 18:00:47 EST 2017
On 15 December 2017 at 19:35, Serhiy Storchaka <storchaka at gmail.com> wrote:
> 15.12.17 20:02, Yury Selivanov пише:
>> But nobody decorates __new__ with a @staticmethod. And making
>> __class_getitem__ a @classmethod will only confuse users -- that's all
>> I'm saying.
>> So I'm +1 to keep the things exactly as they are now. It would be
>> great do document that in order to implement __class_getitem__ in C
>> one should add it as METH_STATIC. I also think we should merge your
>> PR that tests that it works the way it's expected.
> In this case I suggest to make __class_getitem__ an automatic class method
> like __init_subclass__.
> The number of special cases bothers me.
I just want to clarify what is proposed. As I understand:
* From the point of view of a pure Python class there will be no difference
with the current behaviour, one just writes
def __class_getitem__(cls, item):
* In `type_new`, `__class_getitem__` will be wrapped in classmethod
* From the point of view of C extensions one will use METH_CLASS and no
If this is true that this looks reasonable. If no-one is against, then I
can make a PR.
The only downside to this that I see is that `type.__new__` will be
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-Dev