Функция isinstance в Python используется для проверки принадлежности объекта к определённому классу или нескольким классам. Она возвращает True, если объект является экземпляром указанного класса (или классов), и False в противном случае. Это полезно для выполнения типизированных проверок в коде и для обеспечения корректности типов данных.
Содержание
Синтаксис
isinstance(object, classinfo)
Параметры
object: Обязательный параметр. Объект, принадлежность которого нужно проверить.classinfo: Обязательный параметр. Класс, тип или кортеж классов и типов, с которыми нужно сравнить объект.
Возвращаемое значение
Функция возвращает True, если объект является экземпляром указанного класса или кортежа классов. В противном случае возвращает False.
Примеры использования
Пример 1: Проверка типа объекта
print(isinstance(5, int)) # Вывод: True
print(isinstance(5, str)) # Вывод: False
Пример 2: Проверка пользовательских классов
class MyClass:
pass
obj = MyClass()
print(isinstance(obj, MyClass)) # Вывод: True
Пример 3: Проверка нескольких типов
print(isinstance("hello", (int, str, list))) # Вывод: True (так как str входит в кортеж)
print(isinstance([1, 2, 3], (int, str, list))) # Вывод: True (так как list входит в кортеж)
Пример 4: Проверка наследования
class Animal:
pass
class Dog(Animal):
pass
dog = Dog()
print(isinstance(dog, Animal)) # Вывод: True (так как Dog наследуется от Animal)
print(isinstance(dog, Dog)) # Вывод: True
Важные замечания
- Кортеж типов: Параметр
classinfoможет быть кортежем типов. Это позволяет проверять, является ли объект экземпляром любого из указанных типов. - Проверка наследования: Функция
isinstanceучитывает наследование. Если объект является экземпляром класса-потомка, функция вернётTrueпри проверке с классом-предком. - Сравнение с
type: В отличие от функцииtype,isinstanceможет проверять принадлежность к нескольким типам и учитывать наследование.








