все 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Сообщить о неточности