Функция isinstance () проверяет, является ли объект (первый аргумент) экземпляром или подклассом класса classinfo (второй аргумент).
Синтаксис isinstance()
:
isinstance (объект, информация о классе)
isinstance () Параметры
isinstance()
принимает два параметра:
- объект -
object
подлежит проверке - classinfo - класс, тип или кортеж классов и типов
Возвращаемое значение из isinstance ()
isinstance()
возвращает:
True
если объект является экземпляром или подклассом класса или любым элементом кортежаFalse
в противном случае
Если classinfo не является типом или кортежем типов, возникает TypeError
исключение.
Пример 1: Как работает isinstance ()?
class Foo: a = 5 fooInstance = Foo() print(isinstance(fooInstance, Foo)) print(isinstance(fooInstance, (list, tuple))) print(isinstance(fooInstance, (list, tuple, Foo)))
Вывод
Верно Неверно Верно
Пример 2: Работа isinstance () с собственными типами
numbers = (1, 2, 3) result = isinstance(numbers, list) print(numbers,'instance of list?', result) result = isinstance(numbers, dict) print(numbers,'instance of dict?', result) result = isinstance(numbers, (dict, list)) print(numbers,'instance of dict or list?', result) number = 5 result = isinstance(number, list) print(number,'instance of list?', result) result = isinstance(number, int) print(number,'instance of int?', result)
Вывод
(1, 2, 3) экземпляр списка? Истинный (1, 2, 3) экземпляр dict? Ложный (1, 2, 3) экземпляр dict или list? Правда 5 экземпляров списка? Ложный 5 экземпляр int? Правда