Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Python

Понимание type() и isinstance() в Python: практические примеры

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

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

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

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

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

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

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

type(object)
type(name, bases, dict)


Параметры: type(object)

Параметры: type(name, bases, dict)

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

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

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

Пример type()

В этом примере у нас есть строковое значение, число, float, комплексное число, список, кортеж, словарь и множество. Мы используем переменные с type, чтобы увидеть вывод для каждого.

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 : 
The type is : 
The type is : 
The type is : 
The type is : 
The type is : 
The type is : 
The type is : 

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

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

class test:
    s = 'testing'
t = test()
print(type(t))

Вывод:

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

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

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

В этом примере мы используем все три параметра: name, bases и 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))

Вывод:


{'x': 'Hello World', 'y': 50, '__module__': '__main__', '__doc__': None}

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

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

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

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

isinstance(object, classtype)

Параметры

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

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

Примеры 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

В этом примере сравниваем float значение с типом 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) с типом tuple. Вернёт true, если вход заданного типа tuple, и 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}) с типом set. Вернёт 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] с типом list. Вернёт true, если вход типа list, и false, если нет.

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

Вывод:

my_list is a list: True

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

Код проверяет словарь ({"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

type()isinstance()
Встроенная функция type() помогает найти тип класса переменной, переданной как вход. Встроенная функция isinstance() сравнивает значение с заданным типом. Если значение и тип совпадают, вернёт true, иначе false.
Возвращаемое значение — объект типа Возвращаемое значение — Boolean (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

В случае type проверка подкласса даёт 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() даёт truthy значение при проверке с подклассом.

Резюме:

Python

  1. Выражения, операторы и блоки в C#: подробное руководство с примерами
  2. Мастерство преобразования типов в Python: Полное руководство
  3. Числа, преобразование типов и математика в Python: полное руководство
  4. Создание робота на Raspberry Pi и Python: полное руководство
  5. Мастерство метода str.count() в Python: как подсчитывать символы и подстроки с примерами
  6. Мастерство строк форматирования format() в Python: понятные примеры
  7. Мастерство метода String.find() в Python: синтаксис, примеры и альтернативы
  8. Освоение лямбда-функций Python: практические примеры и лучшие практики
  9. Функция round() в Python: подробное объяснение с практическими примерами
  10. Освоение функции map() в Python: синтаксис, примеры и лучшие практики