Метод Python isinstance().
Функція Python isinstance(). повертає True, якщо об’єкт має вказані типи, а якщо він не збігається, повертає False. У цій статті ми побачимо, як працює метод isinstance() у Python
приклад
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().
Метод isinstance() у Python має такий синтаксис:
Синтаксис:
isinstance(obj, клас)
Параметри:
- об'єкт: Об’єкт, який потрібно перевірити як частину класу чи ні.
- клас: клас/тип/кортеж класу чи типу, з яким потрібно перевірити об’єкт.
Повернення: Правда, якщо об’єкт належить до заданого класу/типу, якщо передається один клас, або будь-якого класу/типу, якщо передається кортеж класу/типу, інакше повертає False.
TypeError: якщо щось інше, крім згаданого дійсного типу класу.
Як працює функція instance() у Python?
У Python метод instance() працює як оператор порівняння. Він приймає два аргументи, один — об’єкт Python, а інший — тип класу. Він порівнює об’єкт із визначеним типом класу або підкласу та повертає логічне значення, яке є True або 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.'> )> |
Вихід
The variable 'numbers' is an instance of a list.
Приклади методу isinstance() у Python
Ми можемо надати один тип класу або a Кортеж Python класів до методу instance(). У випадку кортежу метод instance() перевіряє всі елементи в кортежі та повертає True, якщо об’єкт є екземпляром будь-якого з елементів кортежу, інакше він повертає False. Давайте подивимося кілька прикладів методу Python instance().
Python є екземпляром з Int і List
У цьому прикладі ми побачимо, як метод isinstance() працює з типом даних Integer і з Список Python . Ми перевіряємо, чи є ціле число та список екземпляром типу Integer або 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> ))))> |
Вихід
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
Демонстрація використання isinstance() з об’єктами
У цьому прикладі ми перевіримо клас об’єкта в Python, тобто чи є об’єкт екземпляром класу або його похідним класом.
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)))> |
Вихід
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() із String
У цьому прикладі ми будемо використовувати функцію isinstance() з a Рядок Python і перевірити клас об’єкта в Python.
Python3
test_str> => 'techcodeview.com'> print> (> 'Is test_str string? : '> +> str> (> isinstance> (test_str,> str> )))> |
Вихід
Is test_str string? : True
Python isinstance() зі словником
Метод Python isinstance() також працює з a словник об’єкт і перевірити клас об’єкта в Python.
Python3
test_dict> => {> 'apple'> :> 1> ,> 'Ball'> :> 2> }> print> (> 'Is test_str dictionary? : '> +> str> (> isinstance> (test_dict,> dict> )))> |
Вихід
Is test_str dictionary? : True
Python є екземпляром із методами класу
У цьому прикладі ми використовуємо метод isinstance(), щоб перевірити значення, яке повертає функція класу з указаним типом, і перевірити клас об’єкта в Python.
Python3
class> geeks:> > course> => 'DSA'> > > def> purchase(obj):> > return> obj.course> > > geeks.purchase> => classmethod> (geeks.purchase)> str> (> isinstance> (geeks.purchase(),> str> ))> |
Вихід
True
Різниця між методами isinstance() і type() у Python
У наступній таблиці показано відмінності між методом isinstance() і тип() метод у Python.
| isinstance() | тип() |
|---|---|
| Синтаксис: isinstance(об'єкт, клас) | Синтаксис: тип (об'єкт) |
| Він перевіряє, чи належить об’єкт до певного типу класу | Він повертає тип класу об’єкта |
| Він може перевірити, чи належить об’єкт до класу та його підкласів | Він не може мати справу зі спадщиною |
| Це швидше порівняно з type() | Це повільніше, ніж isinstance() |
| Він повертає True або False | Він повертає тип об’єкта |
| Він може перевіряти кілька класів одночасно | Він не може цього зробити |
| приклад: isinstance(10, (int, str)) | приклад: тип(10) |