type() и isinstance() в Python с примерами

Что такое type() в Python?

Python имеет встроенную функцию type(), которая помогает вам найти тип класса переменной, заданной в качестве входных данных. Например, если входные данные представляют собой строку, вы получите выходные данные в виде , для списка это будет , и т. д.

Используя команду type(), вы можете передать один аргумент, и возвращаемое значение будет типом класса данного аргумента, например: тип(объект).

Также возможно передать в type() три аргумента, т.е. type(name, bases, dict), в этом случае он вернет вам объект нового типа.

Синтаксис типа()

type() можно использовать двумя способами, как показано ниже:

 type(object)
type(namr, bases, dict)

Параметры: тип(объект)

  • объект: Это обязательный параметр. Если это только параметр, переданный в type(), он вернет вам тип параметра.

Параметры: тип(имя, базы, дикт)

  • имя: имя класса.
  • основы: (необязательно). Это необязательный параметр и это базовый класс.
  • дикт: (необязательно). Это необязательный параметр, и это пространство имен, содержащее определение класса.

Возвращаемое значение

Если объект является единственным параметром, передаваемым в type(), он вернет вам тип объекта.

Если параметры, переданные в тип, относятся к типу (объект, базы, dict), в этом случае он вернет новый тип объекта.

Пример типа()

В этом примере у нас есть строковое значение, число, значение с плавающей запятой, комплексное число, список, кортеж, dict и set. Мы будем использовать переменные с типом, чтобы увидеть выходные данные для каждой из них.

str_list = "Welcome to Guru99"
age = 50
pi = 3.14
c_num = 3j+10
my_list = ["A", "B", "C", "D"]
my_tuple = ("A", "B", "C", "D")
my_dict = {"A":"a", "B":"b", "C":"c", "D":"d"}
my_set = {'A', 'B', 'C', 'D'}

print("The type is : ",type(str_list))
print("The type is : ",type(age))
print("The type is : ",type(pi))
print("The type is : ",type(c_num))
print("The type is : ",type(my_list))
print("The type is : ",type(my_tuple))
print("The type is : ",type(my_dict))
print("The type is : ",type(my_set))

Вывод:

The type is :<class 'str'>
The type is :<class 'int'>
The type is :<class 'float'>
The type is :<class 'complex'>
The type is :<class 'list'>
The type is :<class 'tuple'>
The type is :<class 'dict'>
The type is :<class 'set'>

Пример: использование type() для объекта класса.

Когда вы проверяете объект, созданный из класса, с помощью type(), он возвращает тип класса вместе с именем класса. В этом примере мы создадим класс и проверим тип объекта, созданный в результате теста класса.

class test:
    s = 'testing'

t = test()
print(type(t))

Вывод:

<class '__main__.test'>

Пример: использование имени, баз и dict в type()

Тип также можно вызвать с использованием синтаксиса: type(name, bases, dict).

Три параметра, передаваемые в type(), т.е. name, bases и dict, являются компонентами, составляющими определение класса. Имя представляет имя класса, bases — базовый класс, а dict — словарь атрибутов базового класса.

В этом примере мы собираемся использовать все три параметра, а именно имя, базы и dict, в type().

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

class MyClass:
  x = 'Hello World'
  y = 50

t1 = type('NewClass', (MyClass,), dict(x='Hello World', y=50))
print(type(t1))
print(vars(t1))

Вывод:

<class 'type'>
{'x': 'Hello World', 'y': 50, '__module__': '__main__', '__doc__': None}

Когда вы передаете все три аргумента в type(), это помогает вам инициализировать новый класс с атрибутами базового класса.

Что такое isinstance() в Python?

Python isinstance является частью встроенные функции Python. Python isinstance() принимает два аргумента и возвращает true, если первый аргумент является экземпляром информации о классе, заданной в качестве второго аргумента.

Синтаксис isinstance()

isinstance(object, classtype)

Параметры

  • объект: объект, экземпляр которого вы сравниваете с типом класса. Он вернет true, если тип соответствует, в противном случае — false.
  • Тип класса: тип, класс или кортеж типов и/или классов.

Возвращаемое значение

Он вернет true, если объект является экземпляром classtype, и false, если нет.

Примеры isinstance()

В этом разделе мы изучим различные примеры, чтобы изучить isinstance().

Пример: проверка целого числа isinstance()

Код ниже сравнивает целочисленное значение 51 с типом int. Он вернет true, если тип соответствует 51, с int, в противном случае — false.

age = isinstance(51,int)
print("age is an integer:", age)

Вывод:

age is an integer: True

Пример: isinstance() проверка с плавающей запятой

В этом примере мы собираемся сравнить значение с плавающей запятой с типом float, т.е. значение 3.14 будет сравниваться с типом float.

pi = isinstance(3.14,float)
print("pi is a float:", pi)

Вывод:

pi is a float: True

Пример: проверка строки isinstance()

message = isinstance("Hello World",str)
print("message is a string:", message)

Вывод:

message is a string: True

Пример: проверка кортежа isinstance()

Код проверяет наличие кортежа (1,2,3,4,5) типа кортеж. Он вернет true, если введенные данные имеют тип кортежа, и false, если нет.

my_tuple = isinstance((1,2,3,4,5),tuple)
print("my_tuple is a tuple:", my_tuple)

Вывод:

my_tuple is a tuple: True

Пример: isinstance() Установить проверку

Код проверяет наличие набора ({1,2,3,4,5} с установленным типом. Он вернет true, если заданный вход имеет тип set, и false, если нет.

my_set = isinstance({1,2,3,4,5},set)
print("my_set is a set:", my_set)

Вывод:

my_set is a set: True

Пример: проверка списка isinstance()

Код проверяет список [1,2,3,4,5] со списком типов. Он вернет true, если введенные данные имеют список типов, и false, если нет.

my_list = isinstance([1,2,3,4,5],list)
print("my_list is a list:", my_list)

Вывод:

my_list is a list: True

Пример: проверка dict isinstance()

Код проверяет наличие dict({"A":"a", "B":"b", "C":"c", "D":"d"} с типом dict. Он вернет true, если данные входные данные имеют тип dict и false, если нет.

my_dict = isinstance({"A":"a", "B":"b", "C":"c", "D":"d"},dict)
print("my_dict is a dict:", my_dict)

Вывод:

my_dict is a dict: True

Пример: проверка isinstance() для класса

Код показывает проверку типа класса с помощью isinstance(). Объект класса сравнивается с именем класса внутри isinstance(). Он возвращает true, если объект принадлежит классу, и false в противном случае.

class MyClass:
    _message = "Hello World"

_class = MyClass()

print("_class is a instance of MyClass() : ", isinstance(_class,MyClass))

Вывод:

_class is a instance of MyClass() True

Разница между type() и isinstance() в Python

тип() isinstance ()
Python имеет встроенную функцию type(), которая помогает вам найти тип класса переменной, заданной в качестве входных данных. Python имеет встроенную функцию isinstance(), которая сравнивает значение с указанным типом. Если значение и указанный тип совпадают, она вернет true, в противном случае false.
Возвращаемое значение является объектом типа Возвращаемое значение является логическим, т. е. истинным или ложным.
class A:
my_listA = [1,2,3]

class B(A):
my_listB = [1,2,3]

print(type(A()) == A)
print(type(B()) == A)

Вывод:

True
False

В случае типа проверка подкласса возвращает false.

class A:
my_listA = [1,2,3]

class B(A):
my_listB = [1,2,3]

print(isinstance(A(), A))
print(isinstance(B(), A))

Вывод:

True
True

isinstance() дает истинное значение при проверке с подклассом.

Резюме

  • Python имеет встроенную функцию type(), которая помогает вам найти тип класса переменной, заданной в качестве входных данных. Например, если входные данные представляют собой строку, вы получите выходные данные в виде , для списка это будет , и т. д.
  • Для type() вы можете передать один аргумент, и возвращаемое значение будет типом класса данного аргумента, например, тип(объект).
  • Также возможно передать в type() три аргумента, т.е. type(name, bases, dict), в этом случае он вернет вам объект нового типа.
  • Python имеет встроенную функцию instance(), которая сравнивает значение с указанным типом. Если значение и указанный тип совпадают, она вернет true, в противном случае false. Используя isinstance(), вы можете проверить string, float, int, list, tuple, dict, set, class и т. д.
  • Используя метод isinstance(), вы можете проверить строку, число с плавающей запятой, целое число, список, кортеж, dict, набор, класс и т. д.