Come scoprire il variable type in Python

di Lorenzo Neri
13 visualizzazioni

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.

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)

Potrebbero interessarti

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ù