> For the complete documentation index, see [llms.txt](https://bemind.gitbook.io/neural/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bemind.gitbook.io/neural/python/vstroennye-funkcii-python/isinstance.md).

# isinstance()

Функция `isinstance()` в Python используется для проверки, является ли объект экземпляром указанного класса или типа.

**Назначение**:

* Определить, принадлежит ли объект к указанному типу или классу (или его подклассам).

**Возврат**:

* Возвращает `True`, если объект является экземпляром указанного класса или типа, иначе `False`.

**Описание**:

* Принимает два обязательных аргумента:
  1. `object` - объект, который нужно проверить.
  2. `classinfo` - класс, тип или кортеж классов и типов для проверки.
* Может проверять принадлежность к нескольким типам, если `classinfo` - кортеж.
* Учитывает наследование классов.

**Примеры**:

1. Проверка типа ***простых объектов***
2. Проверка ***пользовательских классов***
3. Проверка ***нескольких типов***

{% tabs %}
{% tab title="1" %}

```python
print(isinstance(5, int))  # Выведет: True
print(isinstance("Hello", str))  # Выведет: True
print(isinstance(5.0, float))  # Выведет: True
```

{% endtab %}

{% tab title="2" %}

```python
class Animal:
    pass

class Dog(Animal):
    pass

dog = Dog()
print(isinstance(dog, Dog))    # Выведет: True
print(isinstance(dog, Animal)) # Выведет: True
```

{% endtab %}

{% tab title="3" %}

```python
x = 5
print(isinstance(x, (int, float, str)))  # Выведет: True
```

{% endtab %}
{% endtabs %}

**Использование**:

* Для безопасной проверки типа объекта перед выполнением специфических операций.
* В полиморфных функциях для определения типа переданного аргумента.
* При обработке данных различных типов.
* В системах типов и проверках соответствия интерфейсам.

Функция `isinstance()` является предпочтительным способом проверки типа объекта в Python, так как она учитывает иерархию наследования классов. Это делает её более гибкой и надёжной по сравнению с прямым сравнением типов (например, `type(obj) == int`). `isinstance()` широко используется в Python для обеспечения безопасности типов и создания более универсального кода, способного работать с различными типами данных.
