2013-07-12 13 views
5

Sappiamo che tutto è un oggetto in Python e quindi include numeri interi. Quindi fare dir(34) non è una sorpresa, ci sono attributi disponibili.Confusione di sintassi non valida su Python Integers

La mia confusione deriva da quanto segue, perché quello che sta facendo 34.__class__ dà un errore di sintassi quando so che 34 ha l'attributo __class__. Inoltre, perché legare un intero a un nome, ad esempio x, e quindi fare x.__class__ produce la mia risposta prevista di tipo int?

+0

. è usato per il punto decimale. Non puoi neanche fare '34()'. – dansalmo

risposta

12

Perché 34.__class__ non è un numero in virgola mobile valido, che è ciò che il . denota in un valore letterale numerico. Prova (34).__class__.

+1

Oh doh. Quindi '.' è la sintassi che dice a python quando un numero è float o int? Grazie! –

+0

Sì, è un punto decimale quando viene utilizzato con un numero. – kindall

+1

Considerate anche che '1.e3' è un letterale float perfettamente valido; come potresti distinguerlo dal membro 'e3' di int' 1' se entrambi fossero permessi? – abarnert

Problemi correlati