Metodo Python isinstance()
Funzione isinstance() di Python restituisce True se l'oggetto è del tipo specificato e, se non corrisponde, restituisce False. In questo articolo vedremo come funziona il metodo isinstance() in Python
Esempio
Input: isinstance([1, 2, 3], list) Output: True Explanation: The first parameter passed is of list type. Input: isinstance(10, str) Output: False Explanation: The first parameter, 10 is an integer and not a string.
Sintassi della funzione Python isinstance()
Il metodo isinstance() in Pitone ha la seguente sintassi:
Sintassi:
isistanza(oggetto, classe)
Parametri:
- oggetto: L'oggetto che deve essere controllato come parte della classe o meno.
- classe : classe/tipo/tupla di classe o tipo, rispetto al quale è necessario verificare l'oggetto.
Ritorna : Vero, se l'oggetto appartiene alla classe/tipo specificato se viene passata una singola classe o a qualsiasi classe/tipo se viene passata una tupla di classe/tipo, altrimenti restituisce False.
TipoErrore: se qualcosa di diverso dal tipo di classe valido menzionato.
Come funziona la funzione istanza() in Python?
In Python, il metodo istanza() funziona come un operatore di confronto. Richiede due argomenti, uno è un oggetto Python e l'altro è un tipo di classe. Confronta l'oggetto con un tipo di classe o sottoclasse specificato e restituisce un valore booleano, ovvero True o False.
Python3
numbers> => [> 1> ,> 2> ,> 3> ,> 4> ,> 2> ,> 5> ]> # Check if 'numbers' is an instance of a list> result> => isinstance> (numbers,> list> )> if> result:> > print> (> 'The variable 'numbers' is an instance of a list.'> )> else> :> > print> (> 'The variable 'numbers' is not an instance of a list.'> )> |
Produzione
The variable 'numbers' is an instance of a list.
Esempi di metodo isinstance() in Python
Possiamo fornire un tipo di classe singola o a Tupla Python di classi al metodo istanza(). Nel caso di una tupla, il metodo istanza() controlla tutti gli elementi della tupla e restituisce True se l'oggetto è un'istanza di uno qualsiasi degli elementi della tupla, altrimenti restituisce False. Vediamo alcuni esempi del metodo istanza Python().
Python è un'istanza con Int e List
In questo esempio vedremo come funziona il metodo isinstance() con un tipo di dati Integer e con Elenco Python . Controlliamo se l'intero e la lista sono un'istanza di tipo Integer o String.
Python3
# initializing native types> test_int> => 5> test_list> => [> 1> ,> 2> ,> 3> ]> # testing with isinstance> print> (> 'Is test_int integer? : '> +> str> (> isinstance> (test_int,> int> )))> print> (> 'Is test_int string? : '> +> str> (> isinstance> (test_int,> str> )))> print> (> 'Is test_list integer? : '> +> str> (> isinstance> (test_list,> int> )))> print> (> 'Is test_list list? : '> +> str> (> isinstance> (test_list,> list> )))> # testing with tuple> print> (> 'Is test_int integer or list or string? : '> > +> str> (> isinstance> (test_int, (> int> ,> list> ,> str> ))))> |
Produzione
Is test_int integer? : True Is test_int string? : False Is test_list integer? : False Is test_list list? : True Is test_int integer or list or string? : True
Dimostrazione dell'uso di isinstance() con gli oggetti
In questo esempio, controlleremo la classe di un oggetto in Python, ovvero se un oggetto è un'istanza di una classe o della sua classe derivata.
Python3
# declaring classes> class> gfg1:> > a> => 10> # inherited class> class> gfg2(gfg1):> > string> => 'techcodeview.com'> # initializing objects> obj1> => gfg1()> obj2> => gfg2()> # checking instances> print> (> 'Is obj1 instance of gfg1? : '> +> str> (> isinstance> (obj1, gfg1)))> print> (> 'Is obj2 instance of gfg2? : '> +> str> (> isinstance> (obj2, gfg2)))> print> (> 'Is obj1 instance of gfg2? : '> +> str> (> isinstance> (obj1, gfg2)))> # check inheritance case> # return true> print> (> 'Is obj2 instance of gfg1? : '> +> str> (> isinstance> (obj2, gfg1)))> |
Produzione
Is obj1 instance of gfg1? : True Is obj2 instance of gfg2? : True Is obj1 instance of gfg2? : False Is obj2 instance of gfg1? : True
Python isinstance() con String
In questo esempio utilizzeremo la funzione isinstance() con a Stringa di pitone e controlla la classe di un oggetto in Python.
Python3
test_str> => 'techcodeview.com'> print> (> 'Is test_str string? : '> +> str> (> isinstance> (test_str,> str> )))> |
Produzione
Is test_str string? : True
Python isinstance() con Dizionario
Il metodo Python isinstance() funziona anche con a dizionario object e controlla la classe di un oggetto in Python.
Python3
test_dict> => {> 'apple'> :> 1> ,> 'Ball'> :> 2> }> print> (> 'Is test_str dictionary? : '> +> str> (> isinstance> (test_dict,> dict> )))> |
Produzione
Is test_str dictionary? : True
Python è un'istanza con metodi di classe
In questo esempio, utilizziamo il metodo isinstance() per verificare il valore restituito da una funzione di classe con un tipo specificato e verificare la classe di un oggetto in Python.
Python3
class> geeks:> > course> => 'DSA'> > > def> purchase(obj):> > return> obj.course> > > geeks.purchase> => classmethod> (geeks.purchase)> str> (> isinstance> (geeks.purchase(),> str> ))> |
Produzione
True
Differenza tra i metodi isinstance() e type() in Python
La tabella seguente illustra le differenze tra il metodo isinstance() e il metodo tipo() metodo in Python.
| isistanza() | tipo() |
|---|---|
| Sintassi: isinstance(oggetto, classe) | Sintassi: tipo(oggetto) |
| Controlla se un oggetto appartiene a un tipo di classe specifico | Restituisce il tipo di classe di un oggetto |
| Può verificare se l'oggetto appartiene a una classe e alle sue sottoclassi | Non può occuparsi dell'eredità |
| È più veloce rispetto a type() | È più lento di isinstance() |
| Restituisce Vero o Falso | Restituisce il tipo dell'oggetto |
| Può controllare più classi alla volta | Non può farlo |
| Esempio: isistanza(10, (int, str)) | Esempio: tipo(10) |