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

Какво е type() в Python?

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

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

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

Синтаксис за type()

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

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

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

  • обект: Това е задължителен параметър. Ако това е само параметър, предаден на type(), той ще ви върне типа на параметъра.

параметри: тип (име, бази, dict)

  • име: име на класа.
  • основи: (по избор). Това е незадължителен параметър и е основният клас
  • dict: (по избор). Това е незадължителен параметър и е пространство от имена, което има дефиницията на класа.

Връщана стойност

Ако обектът е единственият параметър, предаден на type(), тогава той ще ви върне типа на обекта.

Ако параметрите, предадени на type, са тип (обект, бази, dict), в такъв случай той ще върне нов тип обект.

Пример за type()

В този пример имаме низова стойност, число, плаваща стойност, комплексно число, списък, кортеж, dict и множество. Ще използваме променливите с тип, за да видим изхода за всяка от тях.

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, ако първият аргумент е екземпляр на classinfo, даден като втори аргумент.

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

isinstance(object, classtype)

параметри

  • обект: Обект, чийто екземпляр сравнявате с 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 проверка

В този пример ще сравним стойността на 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}, с набор от типове. Той ще върне 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, ако въведените данни са от тип 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

Пример: проверка на 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() дава вярна стойност, когато се проверява с подклас.

Oбобщение

  • Python има вградена функция, наречена type(), която ви помага да намерите типа на класа на променливата, дадена като вход. Например, ако входът е низ, ще получите изхода като , за списъка, ще бъде и т.н.
  • За type() можете да подадете единичен аргумент и върнатата стойност ще бъде типът на класа на дадения аргумент, например type(object).
  • Също така е възможно да подадете три аргумента към type(), т.е. type(name, bases, dict), в такъв случай той ще ви върне нов тип обект.
  • Python има вградена функция, наречена instance(), която сравнява стойността с дадения тип. Ако дадената стойност и тип съвпадат, ще върне истина, в противен случай невярно. Използвайки isinstance(), можете да тествате за низ, float, int, list, tuple, dict, set, class и т.н.
  • С помощта на метода isinstance() можете да тествате за низ, float, int, list, tuple, dict, set, class и т.н.

Обобщете тази публикация с: