rather than `format(str(self), '')`.
The __format__ method of ``object`` itself raises a :exc:`TypeError`
if passed any non-empty string.
+ .. versionchanged:: 3.7
+ ``object.__format__(x, '')`` is now equivalent to ``str(x)`` rather
+ than ``format(str(self), '')``.
+
.. _richcmpfuncs:
.. method:: object.__lt__(self, other)
a name are now supported.
(Contributed by Serhiy Storchaka in :issue:`30024`.)
+* ``object.__format__(x, '')`` is now equivalent to ``str(x)`` rather than
+ ``format(str(self), '')``.
+ (Contributed by Serhiy Storchaka in :issue:`28974`.)
+
New Modules
===========
Core and Builtins
-----------------
+- bpo-28974: ``object.__format__(x, '')`` is now equivalent to ``str(x)``
+ rather than ``format(str(self), '')``.
+
- bpo-30024: Circular imports involving absolute imports with binding
a submodule to a name are now supported.
object___format___impl(PyObject *self, PyObject *format_spec)
/*[clinic end generated code: output=34897efb543a974b input=7c3b3bc53a6fb7fa]*/
{
- PyObject *self_as_str = NULL;
- PyObject *result = NULL;
-
/* Issue 7994: If we're converting to a string, we
should reject format specifications */
if (PyUnicode_GET_LENGTH(format_spec) > 0) {
self->ob_type->tp_name);
return NULL;
}
- self_as_str = PyObject_Str(self);
- if (self_as_str != NULL) {
- result = PyObject_Format(self_as_str, format_spec);
- Py_DECREF(self_as_str);
- }
- return result;
+ return PyObject_Str(self);
}
/*[clinic input]