[Python-Dev] How long the wrong type of argument should we limit (or not) in the error message (C-api)?

Walter Dörwald walter at livinglogic.de
Mon Dec 16 16:29:09 CET 2013


On 15.12.13 17:33, Ethan Furman wrote:
> On 12/14/2013 07:51 PM, Steven D'Aprano wrote:
>> 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
>
> +1

I'd vote for including the module name in the string and using 
__qualname__ instead of __name__, i.e. make "{:T}".format(obj) 
equivalent to 
"{0.__class__.__module__}.{0.__class__.qualname__}".format(obj).

Servus,
    Walter



More information about the Python-Dev mailing list