Python isinstance() metode

Python isinstance() funktion returnerer True, hvis objektet er af specificerede typer, og hvis det ikke matcher, returneres False. I denne artikel vil vi se, hvordan isinstance()-metoden fungerer i Python

Eksempel

  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. 

Python isinstance() Funktionssyntaks

Metoden isinstance() i Python har følgende syntaks:

Syntaks:

isinstance(objekt, klasse)

Parametre:

  • obj: Objektet, der skal kontrolleres som en del af klassen eller ej.
  • klasse: klasse/type/tuple af klasse eller type, som objektet skal kontrolleres i forhold til.

Vender tilbage : Sandt nok, hvis objekt tilhører den givne klasse/type, hvis en enkelt klasse er bestået, eller en hvilken som helst af klassen/typen, hvis tuple af klasse/type er bestået, ellers returnerer False.

TypeError: hvis der er andet end nævnt gyldig klassetype.

Hvordan virker instans()-funktionen i Python?

I Python fungerer instance()-metoden som en sammenligningsoperator. Det kræver to argumenter, det ene er et Python-objekt og det andet er en klassetype. Det sammenligner objektet med en specificeret type klasse eller en underklasse og returnerer en boolsk værdi, som er enten True eller 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.'> )>

Produktion

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

Eksempler på isinstance()-metoden i Python

Vi kan tilbyde en enkelt klassetype eller en Python tuple af klasser til instance()-metoden. I tilfælde af en tuple tjekker metoden instance() for alle elementerne i tuplen og returnerer True, hvis objektet er en forekomst af et hvilket som helst af elementerne i tuple, ellers returnerer det False. Lad os se et par eksempler på Python instance()-metoden.

Python er en instans med Int og List

I dette eksempel vil vi se, hvordan isinstance()-metoden fungerer med en Integer-datatype og med Python liste . Vi tjekker om hele tallet og listen er en forekomst af et heltal eller af typen 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> ))))>

Produktion

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 

Demonstrer brugen af ​​isinstance() med objekter

I dette eksempel vil vi kontrollere et objekts klasse i Python, dvs. hvis et objekt er en forekomst af en klasse eller dens afledte klasse.

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

Produktion

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() med String

I dette eksempel vil vi bruge funktionen isinstance() med en Python streng og kontroller et objekts klasse i Python.

Python3




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

Produktion

Is test_str string? : True 

Python isinstance() med ordbog

Python isinstance()-metoden fungerer også med en ordbog objekt og kontroller et objekts klasse i Python.

Python3




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

Produktion

Is test_str dictionary? : True 

Python er en instans med klassemetoder

I dette eksempel bruger vi metoden isinstance() til at kontrollere værdien returneret af en klassefunktion med en specificeret type og kontrollere et objekts klasse i Python.

Python3




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

Produktion

True 

Forskel mellem isinstance() og type() metoder i Python

Følgende tabel viser forskellene mellem isinstance()-metoden og type() metode i Python.

isinstance()

type()

Syntaks: isinstance(objekt, klasse) Syntaks: type(objekt)

Det tjekker, om et objekt er af en bestemt klassetype

Det returnerer klassetypen for et objekt

Den kan kontrollere, om objektet tilhører en klasse og dens underklasser

Det kan ikke beskæftige sig med arv

Det er hurtigere sammenlignet med type() Det er langsommere end isinstance()
Det returnerer enten True eller False Det returnerer typen af ​​objektet
Det kan tjekke for flere klasser ad gangen Det kan den ikke
Eksempel: isinstance(10, (int, str)) Eksempel: type(10)