Eric V. Smith <e...@trueblade.com> added the comment:

This behavior isn't going to change. As Zach says, if you want to convert any 
value to a string, use !s. We want to fail as soon as possible: if a class 
(such as NoneType) doesn't implement __format__, then trying to format an 
instance with a format spec that doesn't apply to it should be an error. If you 
want to support strings or None, then it's your job to ensure the conversion.

As issue7994 says, one of the big drivers of this change (I'll argue it's 
really a bugfix) was that you could never add __format__ to  class if it didn't 
previously have one. Or if you did, it would have to support at least the 
string format spec, since there might be code that formatted it with "^10", for 
example.

As things currently stand, we could add __format__ to NoneType and have "T/F" 
mean convert to "True" or "False". If NoneTypes were already format-able with 
"^10", this change wouldn't be possible.

----------
assignee:  -> eric.smith
resolution:  -> not a bug
stage:  -> resolved
status: open -> closed

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue36787>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to