bpo-27541: Reprs of subclasses of some classes now contain actual typ… · python/cpython@b3a7796
@@ -4067,7 +4067,8 @@ static PyObject *
40674067count_repr(countobject *lz)
40684068{
40694069if (lz->cnt != PY_SSIZE_T_MAX)
4070-return PyUnicode_FromFormat("count(%zd)", lz->cnt);
4070+return PyUnicode_FromFormat("%s(%zd)",
4071+_PyType_Name(Py_TYPE(lz)), lz->cnt);
4071407240724073if (PyLong_Check(lz->long_step)) {
40734074long step = PyLong_AsLong(lz->long_step);
@@ -4076,11 +4077,14 @@ count_repr(countobject *lz)
40764077 }
40774078if (step == 1) {
40784079/* Don't display step when it is an integer equal to 1 */
4079-return PyUnicode_FromFormat("count(%R)", lz->long_cnt);
4080+return PyUnicode_FromFormat("%s(%R)",
4081+_PyType_Name(Py_TYPE(lz)),
4082+lz->long_cnt);
40804083 }
40814084 }
4082-return PyUnicode_FromFormat("count(%R, %R)",
4083-lz->long_cnt, lz->long_step);
4085+return PyUnicode_FromFormat("%s(%R, %R)",
4086+_PyType_Name(Py_TYPE(lz)),
4087+lz->long_cnt, lz->long_step);
40844088}
4085408940864090static PyObject *
@@ -4220,9 +4224,12 @@ static PyObject *
42204224repeat_repr(repeatobject *ro)
42214225{
42224226if (ro->cnt == -1)
4223-return PyUnicode_FromFormat("repeat(%R)", ro->element);
4227+return PyUnicode_FromFormat("%s(%R)",
4228+_PyType_Name(Py_TYPE(ro)), ro->element);
42244229else
4225-return PyUnicode_FromFormat("repeat(%R, %zd)", ro->element, ro->cnt);
4230+return PyUnicode_FromFormat("%s(%R, %zd)",
4231+_PyType_Name(Py_TYPE(ro)), ro->element,
4232+ro->cnt);
42264233}
4227423442284235static PyObject *