Как проверять типы в Python с isintance


02 декабря 2019


Проверка типов и классов с isinstance в Python

Когда нужно проверить отношение объекта к классу в Python используется isinstance(). Описание синтаксиса функции ниже:

isinstance(объект, класс)

Функция возвращает булево значение True или False в зависимости от результата.

Для примера проверим является ли объект строкой:

data = 'Some string'
isinstance(data, str)

Так же можно проверять списки и другие массивы:

lst = ['data1', 1]
isinstance(lst, list)

Функция позволяет указывать сразу несколько классов для проверки, но все они должны быть помещены в кортеж:

dct = {'data':1, 'num':2}
isinstance(dct, (dict, list))
isinstance(dct, (int, list))

В примере ниже проверяется является ли экземпляр класса унаследованным:

class TestClass:
    def method(self):
        pass

class CurrentClass(TestClass):
    pass

ins = CurrentClass()
print(
    isinstance(ins, TestClass)
)

Основное отличие isinstance() от type() как раз в том, что он может проверять принадлежность к нескольким классам и унаследование:

massive = [1,2,3,4,5]

if isinstance(massive, (list,set,tuple)):
    print('Pass: ', massive[1])

if type(massive) is set or type(massive) is list or type(massive) is set:
    print('Pass: ', massive[1])

 

...

Теги: #python


Популярные тэги
О блоге
Этот блог представляет собой конспекты выученного материала, преобретенного опыта и лучшие практики в системном администрировании и программировании.