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)