type() og isinstance() i Python med eksempler
Hva er type() i Python?
Python har en innebygd funksjon kalt type() som hjelper deg å finne klassetypen til variabelen gitt som input. For eksempel, hvis inngangen er en streng, vil du få utgangen som , for listen, vil det være , osv.
Ved å bruke type()-kommandoen kan du sende et enkelt argument, og returverdien vil være klassetypen til argumentet som er gitt, eksempel: type(objekt).
Det er også mulig å sende tre argumenter til type(), dvs. type(navn, baser, dict), i slike tilfeller vil det returnere et nytt typeobjekt.
Syntaks for type()
type() kan brukes på to måter som vist nedenfor:
type(object) type(namr, bases, dict)
Parametre: type(objekt)
- objekt: Dette er en obligatorisk parameter. Hvis dette kun er parameter som sendes til type(), vil den returnere parametertypen.
Parametre: type(navn, baser, dikt)
- navn:navn på klassen.
- baser: (valgfritt). Dette er en valgfri parameter, og det er basisklassen
- dict: (valgfritt). Dette er en valgfri parameter, og det er et navneområde som har definisjonen av klassen.
Returverdi
Hvis objektet er den eneste parameteren som sendes til type(), vil det returnere typen til objektet.
Hvis parameterne som sendes til type er en type (objekt, baser, dict), vil den i slike tilfeller returnere en ny type objekt.
Eksempel på type()
I dette eksemplet har vi en strengverdi, tall , flyteverdi, et komplekst tall, liste, tuppel , dict og sett. Vi vil bruke variablene med type for å se utdataene for hver 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))
Utgang:
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: Bruk av type() for klasseobjekt.
Når du sjekker objektet som er opprettet fra en klasse ved hjelp av type(), returnerer det klassetypen sammen med navnet på klassen. I dette eksemplet vil vi lage en klasse og sjekke objekttypen som er opprettet fra klassetesten.
class test:
s = 'testing'
t = test()
print(type(t))
Utgang:
<class '__main__.test'>
Eksempel: Bruk av navn, baser og dikt i type()
Typen kan også kalles ved å bruke syntaksen: type(navn, baser, dikt).
De tre parameterne som sendes til type()ie, navn, baser og dict er komponentene som utgjør en klassedefinisjon. Navnet representerer klassenavnet, basene er basisklassen, og dict er ordboken over basisklasseattributter.
I dette eksemplet skal vi bruke alle tre parametere, 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))
Utgang:
<class 'type'>
{'x': 'Hello World', 'y': 50, '__module__': '__main__', '__doc__': None}
Når du sender alle tre argumentene til type() , hjelper det deg å initialisere ny klasse med basisklasseattributter.
Hva er isinstance() i Python?
Python isinstance er en del av python innebygde funksjoner. Python isinstance() tar inn to argumenter, og den returnerer true hvis det første argumentet er en forekomst av classinfo gitt som det andre argumentet.
Syntaks isinstance()
isinstance(object, classtype)
Parametre
- objekt: Et objekt hvis forekomst du sammenligner med klassetype. Det vil returnere sant hvis typen samsvarer med ellers usann.
- klassetype: En type eller en klasse eller en tuppel av typer og/eller klasser.
Returverdi
Det vil returnere true hvis objektet er en forekomst av classtype og usant hvis ikke.
Eksempler på isinstance()
I denne delen vil vi studere ulike eksempler for å lære isinstance()
Eksempel: isinstance() Heltallssjekk
Koden nedenfor sammenligner heltallsverdi 51 med type int. Det vil returnere sant hvis typen 51 samsvarer med int ellers usann.
age = isinstance(51,int)
print("age is an integer:", age)
Utgang:
age is an integer: True
Eksempel: isinstance() Float check
I dette eksemplet skal vi sammenligne float-verdien med type float, dvs. 3.14-verdien vil sammenlignes med type float.
pi = isinstance(3.14,float)
print("pi is a float:", pi)
Utgang:
pi is a float: True
Eksempel: isinstance() String check
message = isinstance("Hello World",str)
print("message is a string:", message)
Utgang:
message is a string: True
Eksempel: isinstance() Tuppelsjekk
Koden sjekker for en tuppel (1,2,3,4,5) med type tuppel. Det vil returnere sant hvis inndataene er av typen tuple og usant hvis ikke.
my_tuple = isinstance((1,2,3,4,5),tuple)
print("my_tuple is a tuple:", my_tuple)
Utgang:
my_tuple is a tuple: True
Eksempel: isinstance() Sett sjekk
Koden sjekker for et sett ({1,2,3,4,5},med typesett. Den vil returnere sant hvis inndataene som er gitt er av typen sett og usann hvis ikke.
my_set = isinstance({1,2,3,4,5},set)
print("my_set is a set:", my_set)
Utgang:
my_set is a set: True
Eksempel: isinstance() listesjekk
Koden ser etter en liste [1,2,3,4,5]med typeliste. Det vil returnere sant hvis inndataene er av typen liste og usann hvis ikke.
my_list = isinstance([1,2,3,4,5],list)
print("my_list is a list:", my_list)
Utgang:
my_list is a list: True
Eksempel: isinstance() dict check
Koden ser etter en dict({“A”:”a”, “B”:”b”, “C”:”c”, “D”:”d”},med typen dict. Den vil returnere true hvis inndataene som er gitt er av typen dict og false hvis ikke.
my_dict = isinstance({"A":"a", "B":"b", "C":"c", "D":"d"},dict)
print("my_dict is a dict:", my_dict)
Utgang:
my_dict is a dict: True
Eksempel: isinstance() test på en klasse
Koden viser typesjekken til klassen med isinstance() . Objektet til klassen sammenlignes med navnet på klassen inne i isinstance(). Den returnerer true hvis objektet tilhører klassen og usant ellers.
class MyClass:
_message = "Hello World"
_class = MyClass()
print("_class is a instance of MyClass() : ", isinstance(_class,MyClass))
Utgang:
_class is a instance of MyClass() True
Forskjellen mellom type() og isinstance() i Python
| type() | isinstance () |
|---|---|
| Python har en innebygd funksjon kalt type() som hjelper deg å finne klassetypen til variabelen gitt som input. | Python har en innebygd funksjon kalt isinstance() som sammenligner verdien med typen gitt. Hvis verdien og typen som er gitt samsvarer, vil den returnere true ellers usant. |
| Returverdien er et typeobjekt | Returverdien er en boolsk, dvs. sann eller usann. |
class A: my_listA = [1,2,3] class B(A): my_listB = [1,2,3] print(type(A()) == A) print(type(B()) == A) Utgang: True False I tilfelle av type gir underklassesjekken falsk tilbake. |
class A: my_listA = [1,2,3] class B(A): my_listB = [1,2,3] print(isinstance(A(), A)) print(isinstance(B(), A)) Utgang: True True isinstance() gir en sannhetsverdi når den kontrolleres med en underklasse. |
Sammendrag
- Python har en innebygd funksjon kalt type() som hjelper deg å finne klassetypen til variabelen gitt som input. For eksempel, hvis inngangen er en streng, vil du få utgangen som , for listen, vil det være , osv.
- For type() kan du sende et enkelt argument, og returverdien vil være klassetypen til argumentet som er gitt, f.eks. type(objekt).
- Det er også mulig å sende tre argumenter til type(), dvs. type(navn, baser, dict), i slike tilfeller vil det returnere et nytt typeobjekt.
- Python har en innebygd funksjon kalt instance() som sammenligner verdien med typen gitt. Hvis verdien og typen som er gitt samsvarer, vil den returnere true ellers usant. Ved å bruke isinstance(), kan du teste for string, float, int, list, tuple, dict, set, class, etc.
- Ved å bruke isinstance()-metoden kan du teste for streng, float, int, list, tuple, dict, set, class, etc.
