Функция isinstance( ) в Python

Обложка к статье "Функция isinstance( ) в Python"

Функция 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

Важные замечания

  1. Кортеж типов: Параметр classinfo может быть кортежем типов. Это позволяет проверять, является ли объект экземпляром любого из указанных типов.
  2. Проверка наследования: Функция isinstance учитывает наследование. Если объект является экземпляром класса-потомка, функция вернёт True при проверке с классом-предком.
  3. Сравнение с type: В отличие от функции type, isinstance может проверять принадлежность к нескольким типам и учитывать наследование.

Оцените статью
( Пока оценок нет )
Обучение Python
Добавить комментарий