type() og isinstance() i Python med eksempler

Hvad er type() i Python?

Python har en indbygget funktion kaldet type(), der hjรฆlper dig med at finde klassetypen for variablen givet som input. For eksempel, hvis input er en streng, vil du fรฅ output som , for listen, vil det vรฆre osv.

Ved at bruge type()-kommandoen kan du sende et enkelt argument, og returvรฆrdien vil vรฆre klassetypen for det angivne argument, eksempel: type(objekt).

Det er ogsรฅ muligt at sende tre argumenter til type(), dvs. type(navn, baser, dict), i sรฅ fald vil det returnere dig et nyt typeobjekt.

Syntaks for type()

type() kan bruges pรฅ to mรฅder som vist nedenfor:

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

Driftsparametre: type(objekt)

  • objekt: Dette er en obligatorisk parameter. Hvis dette kun er parameter, der sendes til type(), vil det returnere parameterens type.

Driftsparametre: type(navn, baser, diktat)

  • navn: navn pรฅ klassen.
  • baser: (valgfrit). Dette er en valgfri parameter, og det er basisklassen
  • dikt: (valgfrit). Dette er en valgfri parameter, og det er et navneomrรฅde, der har definitionen af โ€‹โ€‹klassen.

Returvรฆrdi

Hvis objektet er den eneste parameter, der sendes til type(), vil det returnere objektets type.

Hvis parametrene, der sendes til type, er en type (objekt, baser, dict), vil det i et sรฅdant tilfรฆlde returnere en ny type objekt.

Eksempel pรฅ type()

I dette eksempel har vi en strengvรฆrdi, tal, flydende vรฆrdi, et komplekst tal, liste, tuple, dict og sรฆt. Vi vil bruge variablerne med type for at se output for hver af 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))

Output:

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

Eksempel: Brug af type() til klasseobjekt.

Nรฅr du kontrollerer objektet, der er oprettet fra en klasse ved hjรฆlp af type(), returnerer det klassetypen sammen med navnet pรฅ klassen. I dette eksempel vil vi oprette en klasse og kontrollere den objekttype, der er oprettet fra klassetesten.

class test:
    s = 'testing'

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

Output:

<class '__main__.test'>

Eksempel: Brug af navn, baser og dict i type()

Typen kan ogsรฅ kaldes ved hjรฆlp af syntaksen: type(navn, baser, dikt).

De tre parametre, der sendes til type()ie, navn, baser og dict er de komponenter, der udgรธr en klassedefinition. Navnet reprรฆsenterer klassenavnet, baserne er basisklassen, og dict er ordbogen over basisklasseattributter.

I dette eksempel skal vi bruge alle tre parametre, dvs. navn, baser og dict i type().

Eksempel:

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

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

Output:

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

Nรฅr du sender alle tre argumenter til type() , hjรฆlper det dig med at initialisere ny klasse med basisklasseattributter.

Hvad er isinstance() i Python?

Python isinstance er en del af python indbyggede funktioner. Python isinstance() tager to argumenter ind, og det returnerer sandt, hvis det fรธrste argument er en forekomst af classinfo givet som det andet argument.

Syntaks isinstance()

isinstance(object, classtype)

Driftsparametre

  • objekt: Et objekt, hvis instans du sammenligner med klassetype. Det vil returnere sandt, hvis typen matcher ellers falsk.
  • klassetype: En type eller en klasse eller en tuple af typer og/eller klasser.

Returvรฆrdi

Det vil returnere sandt, hvis objektet er en forekomst af klassetype og falsk, hvis ikke.

Eksempler pรฅ isinstance()

I dette afsnit vil vi studere forskellige eksempler for at lรฆre isinstance()

Eksempel: isinstance() Heltalskontrol

Koden nedenfor sammenligner heltalsvรฆrdi 51 med typen int. Det vil returnere sandt, hvis typen af โ€‹โ€‹51 matcher med int ellers falsk.

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

Output:

age is an integer: True

Eksempel: isinstance() Float check

I dette eksempel skal vi sammenligne float-vรฆrdien med type float, dvs. 3.14-vรฆrdien vil sammenlignes med type float.

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

Output:

pi is a float: True

Eksempel: isinstance() String check

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

Output:

message is a string: True

Eksempel: isinstance() Tuple check

Koden tjekker for en tuple (1,2,3,4,5) med type tuple. Det vil returnere sandt, hvis inputtet er af typen tuple og falsk, hvis ikke.

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

Output:

my_tuple is a tuple: True

Eksempel: isinstance() Indstil check

Koden tjekker for et sรฆt ({1,2,3,4,5},med typesรฆt. Den returnerer sandt, hvis det givne input er af typen sรฆt og falsk, hvis ikke.

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

Output:

my_set is a set: True

Eksempel: isinstance() listekontrol

Koden sรธger efter en liste [1,2,3,4,5]med typeliste. Det vil returnere sandt, hvis det givne input er af typen liste og falsk, hvis ikke.

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

Output:

my_list is a list: True

Eksempel: isinstance() dict check

Koden sรธger efter en diktat({โ€œAโ€:โ€aโ€, โ€œBโ€:โ€bโ€, โ€œCโ€:โ€cโ€, โ€œDโ€:โ€dโ€}, med typen dict. Den returnerer sand hvis det givne input er af typen dict og falsk, hvis ikke.

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

Output:

my_dict is a dict: True

Eksempel: isinstance() test pรฅ en klasse

Koden viser typetjekket af klasse med isinstance() . Klassens objekt sammenlignes med navnet pรฅ klassen inde i isinstance(). Det returnerer sandt, hvis objektet tilhรธrer klassen og falsk ellers.

class MyClass:
    _message = "Hello World"

_class = MyClass()

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

Output:

_class is a instance of MyClass() True

Forskellen mellem type() og isinstance() i Python

type() isinstance()
Python har en indbygget funktion kaldet type(), der hjรฆlper dig med at finde klassetypen for variablen givet som input. Python har en indbygget funktion kaldet isinstance(), der sammenligner vรฆrdien med den angivne type. Hvis den angivne vรฆrdi og type stemmer overens, vil den returnere true ellers falsk.
Returvรฆrdien er et typeobjekt Returvรฆrdien er en boolesk, dvs. sand eller falsk.
class A:
my_listA = [1,2,3]

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

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

Output:

True
False

I tilfรฆlde af type giver underklassekontrollen falsk tilbage.

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

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

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

Output:

True
True

isinstance() giver en sandhedsvรฆrdi, nรฅr den kontrolleres med en underklasse.

Resumรฉ

  • Python har en indbygget funktion kaldet type(), der hjรฆlper dig med at finde klassetypen for variablen givet som input. For eksempel, hvis input er en streng, vil du fรฅ output som , for listen, vil det vรฆre osv.
  • For type() kan du sende et enkelt argument, og returvรฆrdien vil vรฆre klassetypen for det angivne argument, f.eks. type(objekt).
  • Det er ogsรฅ muligt at sende tre argumenter til type(), dvs. type(navn, baser, dict), i sรฅ fald vil det returnere dig et nyt typeobjekt.
  • Python har en indbygget funktion kaldet instance(), der sammenligner vรฆrdien med den angivne type. Hvis den angivne vรฆrdi og type matcher, vil den returnere true ellers falsk. Ved at bruge isinstance() kan du teste for streng, float, int, list, tuple, dict, set, klasse osv.
  • Ved at bruge isinstance()-metoden kan du teste for streng, float, int, list, tuple, dict, set, klasse osv.

Opsummer dette indlรฆg med: