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

Exempel:

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.

Sammanfatta detta inlรคgg med: