Metoda Python isinstance().
Funcția Python isinstance(). returnează True dacă obiectul este de tipuri specificate, iar dacă nu se potrivește, returnează False. În acest articol vom vedea cum funcționează metoda isinstance() în Python
Exemplu
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.
Sintaxa funcției Python isinstance().
Metoda isinstance() în Piton are următoarea sintaxă:
Sintaxă:
isinstance(obj, clasa)
Parametri:
- obj: Obiectul care trebuie verificat ca parte a clasei sau nu.
- clasa: clasă/tip/tuplu de clasă sau tip, față de care obiectul trebuie verificat.
Se intoarce : Adevărat, dacă obiectul aparține clasei/tipului dat dacă este trecută o singură clasă sau oricare dintre clase/tip dacă este trecut un tuplu de clasă/tip, altfel returnează False.
Eroare de scris: dacă altceva decât tipul de clasă valid menționat.
Cum funcționează funcția instance() în Python?
În Python, metoda instance() funcționează ca un operator de comparație. Este nevoie de două argumente, unul este un obiect Python și celălalt este un tip de clasă. Acesta compară obiectul cu un anumit tip de clasă sau o subclasă și returnează o valoare booleană, care este fie adevărată, fie falsă.
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.'> )> |
Ieșire
The variable 'numbers' is an instance of a list.
Exemple de metoda isinstance() în Python
Putem oferi un singur tip de clasă sau a tuplu Python de clase la metoda instance(). În cazul unui tuplu, metoda instance() verifică toate elementele din tuplu și returnează True dacă obiectul este o instanță a oricăruia dintre elementele tuplului, altfel returnează False. Să vedem câteva exemple ale metodei Python instance().
Python este o instanță cu Int și List
În acest exemplu, vom vedea cum funcționează metoda isinstance() cu un tip de date Integer și cu Lista Python . Verificăm dacă întregul și lista sunt o instanță a unui Integer sau de tip 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> ))))> |
Ieșire
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
Demonstrarea utilizării isinstance() cu Objects
În acest exemplu, vom verifica clasa unui obiect în Python, adică dacă un obiect este o instanță a unei clase sau a clasei sale derivate.
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)))> |
Ieșire
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() cu String
În acest exemplu, vom folosi funcția isinstance() cu a Python String și verificați clasa unui obiect în Python.
Python3
test_str> => 'techcodeview.com'> print> (> 'Is test_str string? : '> +> str> (> isinstance> (test_str,> str> )))> |
Ieșire
Is test_str string? : True
Python isinstance() cu Dicționar
Metoda Python isinstance() funcționează și cu a dicţionar obiect și verificați clasa unui obiect în Python.
Python3
test_dict> => {> 'apple'> :> 1> ,> 'Ball'> :> 2> }> print> (> 'Is test_str dictionary? : '> +> str> (> isinstance> (test_dict,> dict> )))> |
Ieșire
Is test_str dictionary? : True
Python este o instanță cu metode de clasă
În acest exemplu, folosim metoda isinstance() pentru a verifica valoarea returnată de o funcție de clasă cu un tip specificat și pentru a verifica clasa unui obiect în Python.
Python3
class> geeks:> > course> => 'DSA'> > > def> purchase(obj):> > return> obj.course> > > geeks.purchase> => classmethod> (geeks.purchase)> str> (> isinstance> (geeks.purchase(),> str> ))> |
Ieșire
True
Diferența dintre metodele isinstance() și type() în Python
Următorul tabel demonstrează diferențele dintre metoda isinstance() și metoda tip() metoda în Python.
| esteinstanta() | tip() |
|---|---|
| Sintaxă: isinstance(obiect, clasă) | Sintaxă: tip(obiect) |
| Verifică dacă un obiect este de un anumit tip de clasă | Returnează tipul de clasă al unui obiect |
| Poate verifica dacă obiectul aparține unei clase și subclaselor acesteia | Nu se poate ocupa de moștenire |
| Este mai rapid în comparație cu type() | Este mai lent decât isinstance() |
| Returnează fie adevărat, fie fals | Returnează tipul obiectului |
| Poate verifica mai multe clase simultan | Nu poate face asta |
| Exemplu: isinstance(10, (int, str)) | Exemplu: tip (10) |