Когда нужно проверить отношение объекта к классу в 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])
...
Рекомендую
Подписывайтесь на наш Telegram канал
Теги: #python