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