Python Glossary English

все Python 3Типы данныхфункция

isinstance()

интроспекция

Встроенная функция проверки принадлежности объекта к типу или кортежу типов. В отличие от type(), учитывает наследование.

Синтаксис

isinstance(object, classinfo) -> bool

Главная ловушка — bool считается int: isinstance(True, int) возвращает True, потому что bool наследуется от int. Если нужен ровно один тип без учёта наследников, сравнивай type(x) is int; но в идиоматичном Python явных проверок типа обычно избегают в пользу утиной типизации.

Примеры

print(isinstance(42, int))  # → True
print(isinstance(3.14, float))  # → True
print(isinstance(True, int))  # → True (bool — подкласс int)
print(isinstance("hi", (int, str)))  # → True (кортеж типов)
print(isinstance([], list))  # → True
def add(a, b):
    if not isinstance(a, (int, float)):
        raise TypeError("Нужно число")
    return a + b
print(add(2, 3))  # → 5

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности