Metoda Python isinstance().

Funkcija Python isinstance(). vrne True, če je objekt določene vrste, in če se ne ujema, vrne False. V tem članku bomo videli, kako metoda isinstance() deluje v Pythonu

Primer

  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. 

Sintaksa funkcije Python isinstance().

Metoda isinstance() v Python ima naslednjo sintakso:

Sintaksa:

isinstance(obj, razred)

Parametri:

  • predmet: Objekt, ki ga je treba preveriti kot del razreda ali ne.
  • razred: razred/tip/torka razreda ali tipa, glede na katerega objekt je treba preveriti.

Vrnitve: Res je, če objekt pripada danemu razredu/tipu, če je predan en sam razred, ali kateremu koli razredu/tipu, če je predan nabor razreda/tipa, sicer vrne False.

TypeError: če je kaj drugega kot omenjena veljavna vrsta razreda.

Kako deluje funkcija instance() v Pythonu?

V Pythonu metoda instance() deluje kot primerjalni operator. Potrebuje dva argumenta, eden je objekt Python, drugi pa tip razreda. Objekt primerja z določeno vrsto razreda ali podrazreda in vrne logično vrednost, ki je True ali 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.'> )>

Izhod

The variable 'numbers' is an instance of a list. 

Primeri metode isinstance() v Pythonu

Zagotovimo lahko eno vrsto razreda ali a Python tuple razredov v metodo instance(). V primeru tuple metoda instance() preveri vse elemente v tuple in vrne True, če je objekt primerek katerega koli od elementov tuple, sicer vrne False. Oglejmo si nekaj primerov metode Python instance().

Python je instanca z Int in List

V tem primeru bomo videli, kako metoda isinstance() deluje s podatkovnim tipom Integer in z Seznam Python . Preverimo, ali sta celo število in seznam primerek tipa Integer ali 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> ))))>

Izhod

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 

Prikaz uporabe isinstance() s predmeti

V tem primeru bomo preverili razred predmeta v Pythonu, tj. ali je objekt primerek razreda ali njegov izpeljan razred.

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)))>

Izhod

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() z nizom

V tem primeru bomo uporabili funkcijo isinstance() z a Python String in preverite razred predmeta v Pythonu.

Python3




test_str> => 'techcodeview.com'> print> (> 'Is test_str string? : '> +> str> (> isinstance> (test_str,> str> )))>

Izhod

Is test_str string? : True 

Python isinstance() s slovarjem

Metoda Python isinstance() deluje tudi z a slovar objekt in preverite razred predmeta v Pythonu.

Python3




test_dict> => {> 'apple'> :> 1> ,> 'Ball'> :> 2> }> print> (> 'Is test_str dictionary? : '> +> str> (> isinstance> (test_dict,> dict> )))>

Izhod

Is test_str dictionary? : True 

Python je instanca z metodami razreda

V tem primeru uporabljamo metodo isinstance(), da preverimo vrednost, ki jo vrne funkcija razreda z določeno vrsto, in preverimo razred predmeta v Pythonu.

Python3




class> geeks:> > course> => 'DSA'> > > def> purchase(obj):> > return> obj.course> > > geeks.purchase> => classmethod> (geeks.purchase)> str> (> isinstance> (geeks.purchase(),> str> ))>

Izhod

True 

Razlika med metodama isinstance() in type() v Pythonu

Naslednja tabela prikazuje razlike med metodo isinstance() in metodo tip() metoda v Pythonu.

isinstance()

tip()

Sintaksa: isinstance(objekt, razred) Sintaksa: tip(objekt)

Preveri, ali je predmet določene vrste razreda

Vrne vrsto razreda predmeta

Lahko preveri, ali predmet pripada razredu in njegovim podrazredom

Ne more se ukvarjati z dediščino

Je hitrejši v primerjavi s type() Je počasnejši od isinstance()
Vrne True ali False Vrne vrsto predmeta
Lahko preveri več razredov hkrati Tega ne more storiti
primer: isinstance(10, (int, str)) primer: vrsta (10)