A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2018-September/155183.html below:

[Python-Dev] bpo-34595: How to format a type name?

[Python-Dev] bpo-34595: How to format a type name?Eric V. Smith eric at trueblade.com
Thu Sep 13 20:24:00 EDT 2018
On 9/13/2018 8:04 PM, Victor Stinner wrote:

> Le ven. 14 sept. 2018 à 00:09, Eric V. Smith <eric at trueblade.com> a écrit :
>> f'{type(obj)}' becomes type(obj).__format__(''), so you can return
>> something other than __str__ or __repr__ does. It's only by convention
>> that an object's __format__ returns __str__: it need not do so.
> What's New in Python 3.7 contains:
>
>> object.__format__(x, '') is now equivalent to str(x) rather than format(str(self), '').
>> (Contributed by Serhiy Storchaka in bpo-28974.)
> https://bugs.python.org/issue28974
>
> Oh, I didn't know that a type is free to change this behavior: return
> something different than str(obj) if the format spec is an empty
> string.

True! That issue was specific to object.__format__, not any other 
classes implementation of __format__.

> So are you suggesting to change type(obj).__format__('') to return the
> fully qualified name instead of repr(type)?

I'm not suggesting it, I'm saying it's possible. It indeed might be the 
most useful behavior.

> So "%s" % type(obj) would use repr(), but "{}".format(type(obj)) and
> f"{type(obj)}" would return the fully qualified name?
>

"%s" % type(obj) would use str(), not repr.

You could either:
- keep with convention and have type(obj).__format__('') return type(obj).__str__(), while type(obj).__format__('#') (or what other char you want to use) return the qualname;
or
- just have type(obj).__format__('') return the qualname, if that's the more useful behavior.

Eric

More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4