On 15 December 2017 at 19:35, Serhiy Storchaka <storch...@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 class C: 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 tuple unpacking 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 slightly slower. -- Ivan
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com