Рубрики
Без рубрики

Как определить тип объекта в Python?

Формулировка задачи Каждый объект Python имеет определенный тип, также называемый «класс». Класс представляет собой план, который показывает данные и возможности каждого объекта / экземпляра, создаваемого после этого план. Учитывая объект Python). Как определить / проверить / получить его тип)? Есть много вариантов этого вопроса: как определить … Как определить тип объекта в Python? Подробнее “

Автор оригинала: Chris.

Постановка проблемы

Каждый объект Python имеет определенный тип, также называемый «класс». Класс представляет собой план, который показывает данные и возможности каждого объекта/экземпляра, создаваемого после этого план.

Учитывая объект Python). Как определить/проверить/получить его тип)?

Есть много вариантов этого вопроса:

  • Как определить тип объекта?
  • Как проверить тип экземпляра?
  • Как получить класс объекта?
  • Как проверить класс экземпляра?

Давайте начнем с краткого обзора, как вы можете ответить на все те, которые самые питоновые пути.

Обзор решения

В Python встроенные функции Тип () и Isinstance () помочь вам определить тип объекта.

  • Тип (объект) – Возвращает строковое представление типа объекта.
  • Isinstance (объект, класс) – Возвращает логическое значение Правда Если объект является экземпляром класса, а Ложь иначе.

Вот два примера для проверки, если объект является списком:

>>> type([1, 2, 3])

>>> isinstance([1, 2, 3], list)
True

Вы бы использовали Тип () проверить на точный тип объекта. Вы бы использовали Isinstance () Чтобы подтвердить ваши подозрения относительно типа объекта. Функция Isinstance () Является ли более надежным тем, что вы не полагаетесь на крошечные струнные различия, а также работает с наследством типов. Например, Если наследование от B, наследующую от C, объект типа C также является экземпляром A.

Тип () Примеры с одним объектом аргумента:

>>> type([1, 2, 3]) is list
True
>>> type({1, 2, 3}) is dict
True
>>> type('123') is str
True
>>> type(0) is int
True

Тип () С пользовательскими объектами:

>>> class Animal:
	pass

>>> class Snake(Animal):
	pass

>>> a = Animal()
>>> b = Snake()
>>> type(a) is Animal
True
>>> type(b) is Snake
True
>>> type(b) is Animal
False

Третий пример Тип (б) - животное приводит нас к следующему пониманию:

📑 Insight : Тип () Возвращает только немедленный тип объекта, но не работает с наследством.

Если вы хотите преодолеть эту слабость, вы должны использовать Isinstance () Функция, которая также работает для унаследованных типов:

>>> isinstance(Snake(), Animal)
True

Вы также можете использовать его на встроенных объектах и типах, таких как списки, кортежи, наборы и словари:

>>> isinstance([1, 2, 3], list)
True
>>> isinstance((1, 2, 3), tuple)
True
>>> isinstance({1: 'a', 2: 'b'}, dict)
True
>>> isinstance({1, 2, 3}, set)
True

Единственное использование случая, где вы предпочитаете Тип () над Isinstance () Если вам действительно нужно строковое представление типа объекта. Иначе, Isinstance () является более гибкой и выразительной функцией.

Тип () VS IsinStance ()

Разница между Тип () и Isinstance () Это возвращаемое значение, которое представляет собой строковое представление для первого и логического значения для последнего. Вы бы использовали Тип () Функция, если вы ничего не знаете. Если вы уже подозреваете, что объект будет иметь определенный тип), вы можете подтвердить ваше подозрение, используя Isinstance () функция.

Функция Python Type ()

Встроенный Python Тип () Функция имеет две цели. Во-первых, вы можете пройти объект как аргумент, чтобы проверить тип этого объекта. Во-вторых, вы можете пройти три аргумента- Имя , Основы и Диктовать – Чтобы создать новый объект типа, который можно использовать для создания экземпляров этого нового типа.

Вот как использовать Тип () Функция с одним аргументом для проверки типа данного объект :

>>> type(42)

>>> type('Finxter')
Syntax: 
type(object)         # Returns class representation of object
Аргументы объект Объект, который будет проверен для типа.
Возвращаемое значение нить Возвращает строковое представление класса объекта.

Похожие учебники: Функция Python Type ()

Функция Python Isinstance ()

Встроенный Python Isinstance (объект, класс) Функция берет объект и класс как входные аргументы. Это возвращает Правда Если объект является примером класса. В противном случае возвращается Ложь Отказ Вместо класса вы также можете пройти кортеж классов, чтобы проверить, является ли объект экземпляром любого из классов в кортеже, например, в Isinstance (объект, (class_a, class_b, ...)) Отказ

Узнайте пример! Вот пример того, как использовать Isinstance () Встроенная функция Отказ

>>> isinstance(42, int)
True
>>> isinstance(42, (float, list, int))
True
>>> isinstance('42', (float, list, int))
False
Syntax: 
isinstance(object, class)         # Check if object is instance of class
isinstance(object, (class_A, class_B, ...))         # Check if object is instance of any of the classes in the tuple
Аргументы объект Объект, который следует проверить для членства в классе.
Класс или кортеж классов Класс или кортеж классов Этот объект может или не принадлежать.
Возвращаемое значение Логический Возвращает, принадлежит ли объект классу (или классам) или нет.

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.

Оригинал: “https://blog.finxter.com/how-to-determine-the-type-of-an-object-in-python/”