type() e isinstance() in Python con esempi
Che cosa contiene type() Python?
Python ha una funzione incorporata chiamata type() che ti aiuta a trovare il tipo di classe della variabile fornita come input. Ad esempio, se l'input รจ una stringa, otterrai l'output come , per l'elenco, lo sarร , ecc.
Utilizzando il comando type(), puoi passare un singolo argomento e il valore restituito sarร il tipo di classe dell'argomento fornito, ad esempio: type(object).
ร anche possibile passare tre argomenti a type(), ovvero type(name, bases, dict), in tal caso restituirร un nuovo oggetto di tipo.
Sintassi per tipo()
type() puรฒ essere utilizzato in due modi, come mostrato di seguito:
type(object) type(namr, bases, dict)
Scheda Sintetica: tipo(oggetto)
- oggetto: questo รจ un parametro obbligatorio. Se questo รจ solo il parametro passato a type(), ti restituirร il tipo del parametro.
Scheda Sintetica: tipo(nome, basi, dict)
- nome:nome della classe.
- basi: (opzionale). Questo รจ un parametro facoltativo ed รจ la classe base
- dict: (facoltativo). Questo รจ un parametro facoltativo ed รจ uno spazio dei nomi che contiene la definizione della classe.
Valore di ritorno
Se l'oggetto รจ l'unico parametro passato a type() allora ti restituirร il tipo dell'oggetto.
Se i parametri passati al tipo sono un tipo (oggetto, basi, dict), in tal caso restituirร un nuovo tipo di oggetto.
Esempio di tipo()
In questo esempio abbiamo un valore stringa, un numero, un valore float, un numero complesso, un elenco, una tupla, un dizionario e un set. Utilizzeremo le variabili con tipo per vedere l'output per ciascuna di esse.
str_list = "Welcome to Guru99"
age = 50
pi = 3.14
c_num = 3j+10
my_list = ["A", "B", "C", "D"]
my_tuple = ("A", "B", "C", "D")
my_dict = {"A":"a", "B":"b", "C":"c", "D":"d"}
my_set = {'A', 'B', 'C', 'D'}
print("The type is : ",type(str_list))
print("The type is : ",type(age))
print("The type is : ",type(pi))
print("The type is : ",type(c_num))
print("The type is : ",type(my_list))
print("The type is : ",type(my_tuple))
print("The type is : ",type(my_dict))
print("The type is : ",type(my_set))
Produzione:
The type is :<class 'str'> The type is :<class 'int'> The type is :<class 'float'> The type is :<class 'complex'> The type is :<class 'list'> The type is :<class 'tuple'> The type is :<class 'dict'> The type is :<class 'set'>
Esempio: utilizzo di type() per l'oggetto della classe.
Quando controlli l'oggetto creato da una classe utilizzando type(), restituisce il tipo di classe insieme al nome della classe. In questo esempio creeremo una classe e controlleremo il tipo di oggetto creato dal test della classe.
class test:
s = 'testing'
t = test()
print(type(t))
Produzione:
<class '__main__.test'>
Esempio: utilizzo del nome, delle basi e del dict in type()
Il tipo puรฒ essere chiamato anche utilizzando la sintassi: type(name, bases, dict).
I tre parametri passati a type()ie, name, bases e dict sono i componenti che compongono una definizione di classe. Il nome rappresenta il nome della classe, le basi รจ la classe base e dict รจ il dizionario degli attributi della classe base.
In questo esempio, utilizzeremo tutti e tre i parametri, ovvero nome, basi e dict in type().
Esempio:
class MyClass:
x = 'Hello World'
y = 50
t1 = type('NewClass', (MyClass,), dict(x='Hello World', y=50))
print(type(t1))
print(vars(t1))
Produzione:
<class 'type'>
{'x': 'Hello World', 'y': 50, '__module__': '__main__', '__doc__': None}
Quando passi tutti e tre gli argomenti a type() , ti aiuta a inizializzare la nuova classe con gli attributi della classe base.
In cosa consiste isinstance() Python?
Python isistanza fa parte di funzioni integrate di Python. Python isinstance() accetta due argomenti e restituisce true se il primo argomento รจ un'istanza del classinfo fornito come secondo argomento.
Sintassi isistanza()
isinstance(object, classtype)
Scheda Sintetica
- object: Un oggetto la cui istanza stai confrontando con classtype. Restituirร true se il tipo corrisponde, altrimenti false.
- tipo di classe: un tipo, una classe o una tupla di tipi e/o classi.
Valore di ritorno
Restituirร true se l'oggetto รจ un'istanza di classtype e false in caso contrario.
Esempi di isistanza()
In questa sezione studieremo vari esempi per imparare isinstance()
Esempio: isinstance() Controllo intero
Il codice seguente confronta il valore intero 51 con il tipo int. Restituirร true se il tipo di 51 corrisponde a int, altrimenti false.
age = isinstance(51,int)
print("age is an integer:", age)
Produzione:
age is an integer: True
Esempio: isinstance() Controllo float
In questo esempio confronteremo il valore float con il tipo float, ovvero il valore 3.14 verrร confrontato con il tipo float.
pi = isinstance(3.14,float)
print("pi is a float:", pi)
Produzione:
pi is a float: True
Esempio: isinstance() Controllo della stringa
message = isinstance("Hello World",str)
print("message is a string:", message)
Produzione:
message is a string: True
Esempio: isinstance() Controllo della tupla
Il codice verifica la presenza di una tupla (1,2,3,4,5) di tipo tupla. Restituirร vero se l'input fornito รจ di tipo tuple e falso in caso contrario.
my_tuple = isinstance((1,2,3,4,5),tuple)
print("my_tuple is a tuple:", my_tuple)
Produzione:
my_tuple is a tuple: True
Esempio: isinstance() Imposta il controllo
Il codice verifica la presenza di un set ({1,2,3,4,5}, con tipo set. Restituirร true se l'input fornito รจ di tipo set e false in caso contrario.
my_set = isinstance({1,2,3,4,5},set)
print("my_set is a set:", my_set)
Produzione:
my_set is a set: True
Esempio: controllo dell'elenco isinstance()
Il codice verifica la presenza di un elenco [1,2,3,4,5], con elenco dei tipi. Restituirร vero se l'input fornito รจ di tipo elenco e falso in caso contrario.
my_list = isinstance([1,2,3,4,5],list)
print("my_list is a list:", my_list)
Produzione:
my_list is a list: True
Esempio: controllo dict isinstance()
Il codice verifica la presenza di un dict({โAโ:โaโ, โBโ:โbโ, โCโ:โcโ, โDโ:โdโ},con tipo dict. Restituirร vero se l'input fornito รจ di tipo dict e false in caso contrario.
my_dict = isinstance({"A":"a", "B":"b", "C":"c", "D":"d"},dict)
print("my_dict is a dict:", my_dict)
Produzione:
my_dict is a dict: True
Esempio: test isinstance() su una classe
Il codice mostra il controllo del tipo di classe con isinstance() . L'oggetto della classe viene confrontato con il nome della classe all'interno di isinstance(). Restituisce true se l'oggetto appartiene alla classe e false in caso contrario.
class MyClass:
_message = "Hello World"
_class = MyClass()
print("_class is a instance of MyClass() : ", isinstance(_class,MyClass))
Produzione:
_class is a instance of MyClass() True
Differenza tra type() e isinstance() in Python
| genere() | isinstance () |
|---|---|
| Python ha una funzione incorporata chiamata type() che ti aiuta a trovare il tipo di classe della variabile fornita come input. | Python ha una funzione incorporata chiamata isinstance() che confronta il valore con il tipo dato. Se il valore e il tipo dato corrispondono, restituirร true altrimenti false. |
| Il valore restituito รจ un oggetto di tipo | Il valore restituito รจ un booleano, ovvero vero o falso. |
class A: my_listA = [1,2,3] class B(A): my_listB = [1,2,3] print(type(A()) == A) print(type(B()) == A) Produzione: True False In caso di tipo il controllo della sottoclasse restituisce false. |
class A: my_listA = [1,2,3] class B(A): my_listB = [1,2,3] print(isinstance(A(), A)) print(isinstance(B(), A)) Produzione: True True isinstance() fornisce un valore di veritร quando viene controllato con una sottoclasse. |
Sintesi
- Python ha una funzione incorporata chiamata type() che ti aiuta a trovare il tipo di classe della variabile fornita come input. Ad esempio, se l'input รจ una stringa, otterrai l'output come , per l'elenco, lo sarร , ecc.
- Per type(), puoi passare un singolo argomento e il valore restituito sarร il tipo di classe dell'argomento fornito, ad esempio type(object).
- ร anche possibile passare tre argomenti a type(), ovvero type(name, bases, dict), in tal caso restituirร un nuovo oggetto di tipo.
- Python ha una funzione integrata chiamata instance() che confronta il valore con il tipo dato. Se il valore e il tipo dato corrispondono, restituirร true altrimenti false. Utilizzando isinstance(), puoi testare string, float, int, list, tuple, dict, set, class, ecc.
- Usando il metodo isinstance(), puoi testare string, float, int, list, tuple, dict, set, class, ecc.
