Что делает метод isinstance в python?
Метод isinstance()
в Python используется для проверки принадлежности объекта к определенному классу или типу данных. Он принимает два аргумента: объект, который нужно проверить, и класс или тип данных, к которому нужно проверить принадлежность.
Пример использования метода isinstance()
:
# Создаем класс Person
class Person:
def __init__(self, name):
self.name = name
# Создаем объект person
person = Person("Alice")
# Проверяем, является ли объект person экземпляром класса Person
if isinstance(person, Person):
print("person является экземпляром класса Person")
else:
print("person не является экземпляром класса Person")
# Создаем список чисел
numbers = [1, 2, 3, 4, 5]
# Проверяем, является ли объект numbers списком
if isinstance(numbers, list):
print("numbers является списком")
else:
print("numbers не является списком")
В данном примере мы создаем класс Person
, объект person
и список чисел numbers
. Затем с помощью метода isinstance()
мы проверяем, принадлежит ли объект person
классу Person
и является ли объект numbers
списком.
Метод isinstance()
полезен, когда необходимо проверить тип данных объекта перед выполнением определенных операций, чтобы избежать ошибок во время выполнения программы.
Функция isinstance()
принимает в качестве аргументов какой-либо объект и тип данных, а затем проверяет соответствие одного другому. В случае соответствия возвращает True
, при несоответствии возвращает False
:
x = isinstance(5, int)
print(x) # => True
Вторым аргументом может быть не один тип данных, а сразу несколько, объединенных в кортеж. Функция вернет True
, если объект принадлежит хотя бы к одному из них:
x = isinstance(5, (int, str, list, tuple, bool))
print(x) # => True
Помимо этого функция isinstance()
проверяет, принадлежит ли объект указанному классу:
class myObj:
name = "John"
y = myObj()
x = isinstance(y, myObj)
print(x) # => True
Функция isinstance()
проверяет, является ли объект - object (первый аргумент) экземпляром или подклассом класса classinfo (второй аргумент).
Параметры
Функция isinstance()
принимает два параметра:
- object — объект для проверки
- classinfo — класс, тип или кортеж классов и типов
Возвращаемое значение
Функция isinstance()
возвращает:
- True, если объект является экземпляром или подклассом класса или любого элемента кортежа
- False в противном случае
- Если classinfo не является типом или кортежем типов, возникает исключение TypeError.
Пример:
class Foo:
a = 5
fooInstance = Foo()
print(isinstance(fooInstance, Foo))# True
print(isinstance(fooInstance, (list, tuple)))# False
print(isinstance(fooInstance, (list, tuple, Foo))) #True