Учебники

46) тип () и isinstance ()

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

В Python есть встроенная функция type (), которая помогает вам найти тип класса переменной, заданной в качестве входных данных. Например, если вход является строкой, вы получите вывод в виде <class ‘str’>, для списка это будет <class ‘list’> и т. Д.

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

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

В этом уроке вы узнаете:

Синтаксис для типа ():

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

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

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

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

Параметры : тип (имя, основания, дикт)

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

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

Если объект является единственным параметром, переданным 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 ()

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

Три параметра, передаваемые в type (), т. Е. Name, base и dict, являются компонентами, составляющими определение класса. Имя представляет имя класса, base — это базовый класс, а 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 is part of python built-in functions. Python isinstance() takes in two arguments, and it returns true if the first argument is an instance of the classinfo given as the second argument.

Syntax isinstance()

isinstance(object, classtype)

Parameters

  • object: An object whose instance you are comparing with classtype. It will return true if the type matches otherwise false.
  • class type: A type or a class or a tuple of types and/or classes.

Return value:

It will return true if the object is an instance of classtype and false if not.

Examples of isinstance()

In this section, we will study various examples to learn isinstance()

Example : isinstance() Integer check

The code below compares integer value 51 with type int. It will return true it the type of 51 matches with int otherwise false.

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

Output:

age is an integer: True

Example : isinstance() Float check

In this example we are going to compare the float value with type float i.e. 3.14 value will be compare with type float.

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

Output:

pi is a float: True

Example: isinstance() String check

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

Output:

message is a string: True

Example : isinstance() Tuple check

The code checks for a tuple (1,2,3,4,5) with type tuple. It will return true if the input given is of type tuple and false if not.

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

Output:

my_tuple is a tuple: True

Example : isinstance() Set check

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

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] с типом list. Он вернет истину, если данный ввод имеет тип списка, и ложь, если нет.

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

Вывод:

my_list is a list: True

Пример: проверка 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

Разница между типом () и 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

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

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 (), которая помогает вам найти тип класса переменной, заданной в качестве входных данных. Например, если вход является строкой, вы получите вывод в виде <class ‘str’>, для списка это будет <class ‘list’> и т. Д.
  • Для type () вы можете передать один аргумент, и возвращаемое значение будет типом класса данного аргумента, например, type (object).
  • Также возможно передать три аргумента в type (), то есть type (name, base, dict), в таком случае он вернет вам объект нового типа.
  • В Python есть встроенная функция instance (), которая сравнивает значение с указанным типом. Если данное значение и тип соответствуют, он вернет true, иначе false. Используя isinstance (), вы можете проверить строку, число с плавающей точкой, int, список, кортеж, dict, set, class и т. Д.
  • Используя метод isinstance (), вы можете проверить строку, число с плавающей точкой, int, список, кортеж, dict, set, class и т. Д.