Функция 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
может проверять принадлежность к нескольким типам и учитывать наследование.