[Python-Dev] How long the wrong type of argument should we limit (or not) in the error message (C-api)?
Steven D'Aprano
steve at pearwood.info
Sun Dec 15 04:51:29 CET 2013
On Sun, Dec 15, 2013 at 11:25:10AM +1000, Nick Coghlan wrote:
> Oh, yes, a %T shortcut for "length limited type name of the supplied
> object" would be brilliant. We need this frequently for C level error
> messages, and I almost always have to look at an existing example to
> remember the exact incantation :)
What are the chances that could be made available from pure Python too?
Having to extract the name of the type is a very common need for error
messages, and I never know whether I ought to write type(obj).__name__
or obj.__class__.__name__. A %T and/or {:T} format code could be the One
Obvious Way to include the type name in strings:
raise TypeError("Expected int but got '{:T}'".format(obj))
looks nicer to me than either of:
raise TypeError("Expected int but got '{}'".format(type(obj).__name__))
raise TypeError("Expected int but got '{}'".format(obj.__class__.__name__))
--
Steven
More information about the Python-Dev
mailing list