[Tutor] __class__.__name__ for literal integer causes SyntaxError

Emile van Sebille emile at fenx.com
Thu Apr 5 04:27:54 CEST 2012


On 4/4/2012 6:27 PM Tim Johnson said...
> See the following console session:
>>>> 4.6.__class__.__name__

The first decimal is considered to be part of the float literal here...


> 'float'
>>>> 6.__class__.__name__

... _and_ here...

>    File "<stdin>", line 1
>      6.__class__.__name__
>                ^
> SyntaxError: invalid syntax

... which explains the error -- the float value is improper.

>>>> x = 6
>>>> x.__class__.__name__
> 'int'
>>>> "me".__class__.__name__
> 'str'
> I note that the reference to '__class__.__name__' for string and
> float literals is executed, but that there is a SyntaxError for that
> same reference of a 'int' literal.
>
> I'd welcome comments, explanations or URLs to discussions.
> thanks

Try

 >>> (6).__class__.__name__
'int'
 >>>

HTH,

Emile



More information about the Tutor mailing list