[Python-Dev] Default formatting
Serhiy Storchaka
storchaka at gmail.com
Sun Jan 22 14:48:15 EST 2017
More information about the Python-Dev mailing list
Sun Jan 22 14:48:15 EST 2017
- Previous message (by thread): [Python-Dev] Update on the GitHub migration
- Next message (by thread): [Python-Dev] Default formatting
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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 What is the decision about this?
- Previous message (by thread): [Python-Dev] Update on the GitHub migration
- Next message (by thread): [Python-Dev] Default formatting
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list