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)