diff --git a/Lib/test/test_dict.py b/Lib/test/test_dict.py index 1db3559a012fd3..8ca6dcd54b0794 100644 --- a/Lib/test/test_dict.py +++ b/Lib/test/test_dict.py @@ -1767,6 +1767,9 @@ def test_update(self): self.assertEqual(copy, frozendict({'x': 1})) def test_repr(self): + d = frozendict() + self.assertEqual(repr(d), "frozendict()") + d = frozendict(x=1, y=2) self.assertEqual(repr(d), "frozendict({'x': 1, 'y': 2})") diff --git a/Objects/dictobject.c b/Objects/dictobject.c index 62abb793d002e0..3ebedc7708d7f4 100644 --- a/Objects/dictobject.c +++ b/Objects/dictobject.c @@ -7868,6 +7868,11 @@ static PyMethodDef frozendict_methods[] = { static PyObject * frozendict_repr(PyObject *self) { + PyDictObject *mp = _PyAnyDict_CAST(self); + if (mp->ma_used == 0) { + return PyUnicode_FromFormat("%s()", Py_TYPE(self)->tp_name); + } + PyObject *repr = anydict_repr_impl(self); if (repr == NULL) { return NULL;