isinstance()
Функция isinstance() возвращает True, если объект является
экземпляром указанного класса или его подкласса, и False — иначе.
В качестве проверяемого типа можно передать кортеж классов, тогда проверка
выполняется по всем сразу.
Сигнатура
isinstance(object, classinfo)
Параметры:
object— проверяемый объект.classinfo— класс, кортеж классов или union-тип (int | str).
Возвращает: True или False.
Примеры
Базовые проверки:
print(isinstance(7, int))
print(isinstance("hi", str))
print(isinstance(3.14, int))
True
True
False
Проверка по нескольким типам сразу:
for value in (1, 2.5, "x", True):
print(value, isinstance(value, (int, float)))
1 True
2.5 True
x False
True True
Подкласс тоже считается экземпляром:
class Animal: pass
class Dog(Animal): pass
d = Dog()
print(isinstance(d, Dog))
print(isinstance(d, Animal))
True
True
Валидация аргументов функции:
def double(x):
if not isinstance(x, (int, float)):
raise TypeError("ожидалось число")
return x * 2
print(double(5))
try:
double("hello")
except TypeError as e:
print("error:", e)
10
error: ожидалось число
Разбор смешанного списка:
data = [1, "two", 3.0, [4], {"k": 5}]
for item in data:
if isinstance(item, str):
print(item, "— строка")
elif isinstance(item, (int, float)):
print(item, "— число")
else:
print(item, "— коллекция")
1 — число
two — строка
3.0 — число
[4] — коллекция
{'k': 5} — коллекция
См. также
Примечание
Описание основано на официальной документации Python (docs.python.org), распространяемой под лицензией PSF License v2. © Python Software Foundation.