Come scoprire il variable type in Python

di Lorenzo Neri

Come si può scoprire il variable type, quindi il tipo di una variabile in Python? In questo articolo ti aiuto a capire come.

Python, nel caso non lo sapessi, è tipizzato dinamicamente come potrai approfondire qui nella guida ufficiale.

Ciao mi chiamo Lorenzo Neri e sono un informatico: realizzo contenuti per aiutare le persone a padroneggiare l’arte del nuovo millennio, ovvero l’informatica!

Ti sarà capitato più volte di chiederti quale fosse il tipo delle variabili che stai utilizzando e quindi come poter scoprire il variable type, detto in inglese.

Questo discorso purtroppo non è lineare: ho il piacere di accompagnarti dentro esso un passo per volta.

Partiamo dalla variabile e la funzione type

Ammettiamo che tu abbia una variabile:

variabile = "valore"

Così a naso, potremmo dire che il suo tipo sia “stringa”: giusta osservazione… Ma come facciamo ad esserne sicuri?

Il primo metodo per scoprire il variable type è la funzione “type”:

>>> type(variabile)
<class 'str'>

Come potremmo aspettarci da terminale in questo caso, la classe è appunto “str”: di per sé abbiamo già “scoperto” come scoprire il variable type… Ma andiamo oltre!

Python variable type: l’attributo “__name__”

Prima che tu ti confonda: non ha niente a che vedere con l’esecuzione modulo/programma principale che ho spiegato in questo articolo.

Avrai notato prima, che la funzione “type” ti restituisce una classe. Beh possiamo fare uno step in più e ottenere direttamente il variable type nudo e crudo.

Come? Così:

>>> type(variabile).__name__
'str'

Sai, in realtà c’è un altro modo per capire il type di una variabile, ma non dovresti usarlo.

“__class__” per il variable type: NON usarlo!

Riprendiamo l’esempio di prima:

>>> variabile.__class__
<class 'str'>

Di per sé otteniamo il risultato che vogliamo, dico bene?

In linea generale, potresti pensare che sia anche un ottimo metodo per ottenere gli attributi di una classe in Python.

Tipo:

class Classe(object):
   def metodo(self):
      self.__class__

In realtà, è una strada che NON ti consiglio di usare se vuoi determinare il variable type e ti spiego brevemente perché.

I nomi che partono con gli underscore in Python (“_”) semanticamente non sono parte delle API pubbliche, ad eccezione di quanto sono necessari.

Questo è il motivo, ma come possiamo fare?

Beh per esempio:

class Classe(object):
   def metodo(self):
      type(self)

Continua a scoprire di più con questi articoli!

Lascia un commento

Questo sito potrebbe fare uso di cookie e siccome l'UE mi obbliga a fartelo presente, eccoti il classico banner dove puoi decidere come gestirli. Accetta Leggi di più