mirror of https://github.com/python/cpython
bpo-28974: `object.__format__(x, '')` is now equivalent to `str(x)` (#506)
rather than `format(str(self), '')`.
This commit is contained in:
parent
a66f9c6bb1
commit
7e19dbc92e
|
@ -1282,6 +1282,10 @@ Basic customization
|
||||||
The __format__ method of ``object`` itself raises a :exc:`TypeError`
|
The __format__ method of ``object`` itself raises a :exc:`TypeError`
|
||||||
if passed any non-empty string.
|
if passed any non-empty string.
|
||||||
|
|
||||||
|
.. versionchanged:: 3.7
|
||||||
|
``object.__format__(x, '')`` is now equivalent to ``str(x)`` rather
|
||||||
|
than ``format(str(self), '')``.
|
||||||
|
|
||||||
|
|
||||||
.. _richcmpfuncs:
|
.. _richcmpfuncs:
|
||||||
.. method:: object.__lt__(self, other)
|
.. method:: object.__lt__(self, other)
|
||||||
|
|
|
@ -89,6 +89,10 @@ Other Language Changes
|
||||||
a name are now supported.
|
a name are now supported.
|
||||||
(Contributed by Serhiy Storchaka in :issue:`30024`.)
|
(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
|
New Modules
|
||||||
===========
|
===========
|
||||||
|
|
|
@ -10,6 +10,9 @@ What's New in Python 3.7.0 alpha 1?
|
||||||
Core and Builtins
|
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
|
- bpo-30024: Circular imports involving absolute imports with binding
|
||||||
a submodule to a name are now supported.
|
a submodule to a name are now supported.
|
||||||
|
|
||||||
|
|
|
@ -4493,9 +4493,6 @@ static PyObject *
|
||||||
object___format___impl(PyObject *self, PyObject *format_spec)
|
object___format___impl(PyObject *self, PyObject *format_spec)
|
||||||
/*[clinic end generated code: output=34897efb543a974b input=7c3b3bc53a6fb7fa]*/
|
/*[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
|
/* Issue 7994: If we're converting to a string, we
|
||||||
should reject format specifications */
|
should reject format specifications */
|
||||||
if (PyUnicode_GET_LENGTH(format_spec) > 0) {
|
if (PyUnicode_GET_LENGTH(format_spec) > 0) {
|
||||||
|
@ -4504,12 +4501,7 @@ object___format___impl(PyObject *self, PyObject *format_spec)
|
||||||
self->ob_type->tp_name);
|
self->ob_type->tp_name);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
self_as_str = PyObject_Str(self);
|
return PyObject_Str(self);
|
||||||
if (self_as_str != NULL) {
|
|
||||||
result = PyObject_Format(self_as_str, format_spec);
|
|
||||||
Py_DECREF(self_as_str);
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*[clinic input]
|
/*[clinic input]
|
||||||
|
|
Loading…
Reference in New Issue