typ() och isinstance() i Python med exempel

Vad är type() i Python?

Python har en inbyggd funktion som heter type() som hjälper dig att hitta klasstypen för variabeln som ges som indata. Till exempel, om ingången är en sträng får du utdata som , för listan kommer det att vara , etc.

Med kommandot type() kan du skicka ett enda argument, och returvärdet kommer att vara klasstypen för det angivna argumentet, exempel: type(objekt).

Det är också möjligt att skicka tre argument till typ(), dvs typ(namn, baser, dict), i sådana fall kommer det att returnera ett nytt typobjekt.

Syntax för typ()

type() kan användas på två sätt som visas nedan:

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

Driftparametrar : typ(objekt)

  • objekt: Detta är en obligatorisk parameter. Om detta endast är parametern som skickas till type(), kommer den att returnera parameterns typ.

Driftparametrar : typ(namn, baser, dikt)

  • namn: namn på klassen.
  • baser: (valfritt). Detta är en valfri parameter, och det är basklassen
  • dict: (valfritt). Detta är en valfri parameter, och det är ett namnområde som har definitionen av klassen.

Returvärde

Om objektet är den enda parametern som skickas till type() kommer det att returnera objektets typ.

Om parametrarna som skickas till typ är en typ (objekt, baser, dict), kommer den i så fall att returnera en ny typ av objekt.

Exempel på typ()

I det här exemplet har vi ett strängvärde, nummer , flytvärde, ett komplext tal, lista, tupel , dict och set. Vi kommer att använda variablerna med typ för att se utdata för var och en av dem.

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))

Produktion:

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'>

Exempel: Använda type() för klassobjekt.

När du kontrollerar objektet som skapats från en klass med type(), returnerar det klasstypen tillsammans med klassens namn. I det här exemplet kommer vi att skapa en klass och kontrollera objekttypen som skapats från klasstestet.

class test:
    s = 'testing'

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

Produktion:

<class '__main__.test'>

Exempel: Använda namnet, baserna och dict i typ()

Typen kan också anropas med hjälp av syntaxen: type(namn, baser, dikt).

De tre parametrarna som skickas till type()ie, namn, baser och dict är de komponenter som utgör en klassdefinition. Namnet representerar klassnamnet, baserna är basklassen och dict är ordboken över basklassattribut.

I det här exemplet kommer vi att använda alla tre parametrarna, dvs namn, baser och dict i type().

Exempelvis:

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

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

Produktion:

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

När du skickar alla tre argumenten till type() , hjälper det dig att initiera ny klass med basklassattribut.

Vad är isinstance() i Python?

Python isinstance är en del av python inbyggda funktioner. Python isinstance() tar in två argument, och den returnerar true om det första argumentet är en instans av klassinformationen som ges som det andra argumentet.

Syntax isinstance()

isinstance(object, classtype)

Driftparametrar

  • object: Ett objekt vars instans du jämför med classtype. Det kommer att returnera sant om typen matchar annars false.
  • klasstyp: En typ eller en klass eller en tuppel av typer och/eller klasser.

Returvärde

Det kommer att returnera true om objektet är en instans av classtype och false om inte.

Exempel på isinstance()

I det här avsnittet kommer vi att studera olika exempel för att lära oss isinstance()

Exempel: isinstance() Heltalskontroll

Koden nedan jämför heltalsvärde 51 med typen int. Det kommer att returnera sant om typen av 51 matchar med int annars falskt.

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

Produktion:

age is an integer: True

Exempel: isinstance() Flytkontroll

I det här exemplet ska vi jämföra float-värdet med typ float, dvs 3.14-värdet kommer att jämföras med typ float.

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

Produktion:

pi is a float: True

Exempel: isinstance() String check

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

Produktion:

message is a string: True

Exempel: isinstance() Tuple check

Koden letar efter en tuppel (1,2,3,4,5) med typ tuppel. Det kommer att returnera sant om inmatningen är av typen tuple och falsk om inte.

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

Produktion:

my_tuple is a tuple: True

Exempel: isinstance() Ställ in kontroll

Koden letar efter en uppsättning ({1,2,3,4,5},med typuppsättning. Den kommer att returnera true om inmatningen är av typen set och false om inte.

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

Produktion:

my_set is a set: True

Exempel: isinstance() listkontroll

Koden söker efter en lista [1,2,3,4,5]med typlista. Det kommer att returnera sant om inmatningen är av typen lista och falsk om inte.

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

Produktion:

my_list is a list: True

Exempel: isinstance() dict check

Koden letar efter ett dict({“A”:”a”, “B”:”b”, “C”:”c”, “D”:”d”},med typen dict. Den returnerar sant om inmatningen som ges är av typen dict och false om inte.

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

Produktion:

my_dict is a dict: True

Exempel: isinstance() test på en klass

Koden visar typkontrollen av klass med isinstance() . Klassens objekt jämförs med namnet på klassen inuti isinstance(). Det returnerar sant om objektet tillhör klassen och falskt annars.

class MyClass:
    _message = "Hello World"

_class = MyClass()

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

Produktion:

_class is a instance of MyClass() True

Skillnaden mellan type() och isinstance() in Python

typ() isinstance ()
Python har en inbyggd funktion som heter type() som hjälper dig att hitta klasstypen för variabeln som ges som indata. Python har en inbyggd funktion som heter isinstance() som jämför värdet med den angivna typen. Om värdet och typen stämmer överens kommer det att returnera true annars falskt.
Returvärdet är ett typobjekt Returvärdet är ett booleskt, dvs sant eller falskt.
class A:
my_listA = [1,2,3]

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

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

Produktion:

True
False

Vid typ ger underklasskontrollen tillbaka false.

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

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

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

Produktion:

True
True

isinstance() ger ett sanningsvärde när det kontrolleras med en underklass.

Sammanfattning

  • Python har en inbyggd funktion som heter type() som hjälper dig att hitta klasstypen för variabeln som ges som indata. Till exempel, om ingången är en sträng får du utdata som , för listan kommer det att vara , etc.
  • För type() kan du skicka ett enda argument, och returvärdet kommer att vara klasstypen för det angivna argumentet, t.ex. type(objekt).
  • Det är också möjligt att skicka tre argument till typ(), dvs typ(namn, baser, dict), i sådana fall kommer det att returnera ett nytt typobjekt.
  • Python har en inbyggd funktion som heter instans() som jämför värdet med den angivna typen. Om värdet och typen stämmer överens kommer det att returnera sant annars falskt. Med isinstance() kan du testa för string, float, int, list, tuple, dict, set, class, etc.
  • Med metoden isinstance() kan du testa för sträng, float, int, list, tuple, dict, set, klass, etc.