A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2017-December/151279.html below:

[Python-Dev] Make __class_getitem__ a class method

[Python-Dev] Make __class_getitem__ a class method [Python-Dev] Make __class_getitem__ a class methodSerhiy Storchaka storchaka at gmail.com
Fri Dec 15 10:00:23 EST 2017
The class itself always is passed as the first argument to 
__class_getitem__():

     cls.__class_getitem__(cls, item)

I propose to make __class_getitem__ a class method. This will make 
simpler implementing it in C. Currently it should be declared with flags 
METH_VARARGS|METH_STATIC and implementing as

static PyObject *
generic_class_getitem(PyObject *Py_UNUSED(self), PyObject *args)
{
     PyObject *type, *item;
     if (!PyArg_UnpackTuple(args, "__class_getitem__", 2, 2, &type, 
&item)) {
         return NULL;
     }
     ...
}

Note an unused parameter and the need of manual unpacking arguments.

If use it as a class method it should be declared with flags 
METH_O|METH_CLASS and implemented as

static PyObject *
generic_class_getitem(PyObject *type, PyObject *item)
{
     ...
}

See https://github.com/python/cpython/pull/4883 for sample.

More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4