[Python-Dev] Make class_getitem a class method (original) (raw)

Ivan Levkivskyi levkivskyi at gmail.com
Fri Dec 15 12:04:38 EST 2017


On 15 December 2017 at 17:47, Yury Selivanov <yselivanov.ml at gmail.com> wrote:

Shouldn't we optimize the usability for pure-Python first, and then for C API?

Right now we have the 'new' magic method, which isn't a @classmethod. Making 'classgetitem' a @classmethod will confuse regular Python users. For example: class Foo: def new(cls, ...): pass @classmethod def classgetitem(cls, item): pass To me it makes sense that type methods that are supposed to be called on type by the Python interpreter don't need the classmethod decorator.

Good point! Pure Python will be the primary use case and we have another precedent for "automatic" class method: init_subclass (it does not need to be decorated).

METHSTATIC is a public working API, and in my opinion it's totally fine if we use it. It's not even hard to use it, it's just mildly inconvenient at most.

OK, then documenting this "recipe" (METH_STATIC plus tuple unpacking) should be sufficient.

-- Ivan -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20171215/ca2c2610/attachment.html>



More information about the Python-Dev mailing list