[Python-Dev] Default formatting
Ethan Furman
ethan at stoneleaf.us
Sun Jan 22 15:07:04 EST 2017
More information about the Python-Dev mailing list
Sun Jan 22 15:07:04 EST 2017
- Previous message (by thread): [Python-Dev] Default formatting
- Next message (by thread): [Python-Dev] adding threaded tests to the test suite
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 01/22/2017 11:48 AM, Serhiy Storchaka wrote: > On 25.10.16 12:37, Serhiy Storchaka wrote: >> Classes that doesn't define the __format__ method for custom PEP 3101 >> formatting inherits it from parents. >> >> Originally the object.__format__ method was designed as [1]: >> >> def __format__(self, format_spec): >> return format(str(self), format_spec) >> >> An instance is converted to string and resulting string is formatted >> according to format specifier. >> >> Later this design was reconsidered [2], and now object.__format__ is >> equivalent to: >> >> def __format__(self, format_spec): >> assert format_spec == '' >> return format(str(self), '') >> >> Non-empty format specifier is rejected. >> >> But why call format() on resulting string? Why not return resulting >> string as is? object.__format__ could be simpler (not just >> implementation, but for understanding): >> >> def __format__(self, format_spec): >> assert format_spec == '' >> return str(self) >> >> This can change the behaviour in corner case. str(self) can return not >> exact string, but string subclass with overloaded __format__. But I >> think we can ignore such subtle difference. >> >> [1] https://www.python.org/dev/peps/pep-3101/ >> [2] http://bugs.python.org/issue7994 Can you give an example of this corner case? -- ~Ethan~
- Previous message (by thread): [Python-Dev] Default formatting
- Next message (by thread): [Python-Dev] adding threaded tests to the test suite
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list