Mercurial > cpython-lru_cache-weakref
diff Objects/typeobject.c @ 54118:ae006386ec39 legacy-trunk
properly lookup __instancecheck__ and __subclasscheck__
| author | Benjamin Peterson <benjamin@python.org> |
|---|---|
| date | Sat, 16 May 2009 21:44:25 +0000 |
| parents | b7920e183422 |
| children | cb26299e0e52 |
line wrap: on
line diff
--- a/Objects/typeobject.c Sat May 16 18:44:34 2009 +0000 +++ b/Objects/typeobject.c Sat May 16 21:44:25 2009 +0000 @@ -586,14 +586,6 @@ static PyObject * -type_get_instancecheck(PyObject *type, void *context) -{ - static PyMethodDef ml = {"__instancecheck__", - type___instancecheck__, METH_O }; - return PyCFunction_New(&ml, type); -} - -static PyObject * type___subclasscheck__(PyObject *type, PyObject *inst) { switch (_PyObject_RealIsSubclass(inst, type)) { @@ -606,13 +598,6 @@ } } -static PyObject * -type_get_subclasscheck(PyObject *type, void *context) -{ - static PyMethodDef ml = {"__subclasscheck__", - type___subclasscheck__, METH_O }; - return PyCFunction_New(&ml, type); -} static PyGetSetDef type_getsets[] = { {"__name__", (getter)type_name, (setter)type_set_name, NULL}, @@ -622,8 +607,6 @@ (setter)type_set_abstractmethods, NULL}, {"__dict__", (getter)type_dict, NULL, NULL}, {"__doc__", (getter)type_get_doc, NULL, NULL}, - {"__instancecheck__", (getter)type_get_instancecheck, NULL, NULL}, - {"__subclasscheck__", (getter)type_get_subclasscheck, NULL, NULL}, {0} }; @@ -2674,6 +2657,10 @@ PyDoc_STR("mro() -> list\nreturn a type's method resolution order")}, {"__subclasses__", (PyCFunction)type_subclasses, METH_NOARGS, PyDoc_STR("__subclasses__() -> list of immediate subclasses")}, + {"__instancecheck__", type___instancecheck__, METH_O, + PyDoc_STR("__instancecheck__() -> check if an object is an instance")}, + {"__subclasscheck__", type___subclasscheck__, METH_O, + PyDoc_STR("__subclasschck__ -> check if an class is a subclass")}, {0} };
