type() og isinstance() i Python med eksempler

โšก Smart opsummering

Python type() og isinstance() er indbyggede funktioner til at kontrollere et objekts klasse. type() returnerer den nรธjagtige type, mens isinstance() tester, om et objekt tilhรธrer en klasse eller en tuple af klasser. Begge vises her med eksempler.

  • ๐Ÿ” type(): Returnerer den nรธjagtige klasse for et objekt, f.eks. str, int eller list.
  • โœ… isinstance(): Kontrollerer om et objekt er en instans af en given klasse, og returnerer True eller False.
  • ๐Ÿงฉ Tre-argument type(): type(name, bases, dict) opretter dynamisk et helt nyt klasseobjekt.
  • ???? Underklasser: isinstance() returnerer True for underklasser; type() kontrollerer kun den nรธjagtige klasse.
  • ๐ŸŽฏ Brug sager: Valider inputtyper, fejlfindingsvariabler og forgreningslogik efter objekttype.
  • ๐Ÿค– AI-hjรฆlp: AI-vรฆrktรธjer som Copilot genererer type()- og istance()-tjek efter behov.

type() og isinstance() i Python

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.

Ofte Stillede Spรธrgsmรฅl

type() er en indbygget funktion, der returnerer klassen for et objekt. Nรฅr รฉt argument sendes, giver den objekttypen; nรฅr tre argumenter sendes (name, bases, dict), opretter den en ny klasse.

isinstance(object, classtype) kontrollerer, om et objekt er en instans af en klasse eller en tuple af klasser. Den returnerer True, hvis typen matcher, og False ellers.

type() returnerer et objekts nรธjagtige klasse og ignorerer arv, mens isinstance() ogsรฅ returnerer True for underklasser. Brug isinstance() til fleksible typekontroller, der respekterer klassehierarkier.

Ja. Kald af type(name, bases, dict) med tre argumenter returnerer dynamisk et nyt klasseobjekt. name er klassenavnet, bases er en tuple af forรฆldre, og dict indeholder attributter.

Ja. isinstance() returnerer True, nรฅr et objekt er en instans af en klasse eller en af โ€‹โ€‹dens underklasser. Dette gรธr det mere sikkert end type() til at kontrollere nedarvede typer.

AI-assistenter som GitHub Copilots autofuldfรธrelse af type()- og isinstance()-tjek, genererer valideringsvagter og foreslรฅr den rigtige tilgang til et givet objekt, mens du skriver. Python.

Ja. AI-drevne vรฆrktรธjer kan automatisere indsรฆttelse af isinstance() guards, detektere ukontrollerede input og omstrukturere fragile type()-sammenligninger til sikrere isinstance()-tjek pรฅ tvรฆrs af din kodebase.

type() returnerer klasseobjektet for vรฆrdien: list for en liste og dict for en ordbog. Udskrivning viser en form som klasse list eller klasse dict.

Opsummer dette indlรฆg med: