Sjekking av objekttype i Python
For å sjekke typen av et element, må du bruke
funksjonen isinstance. Den tar første
parameter som elementet, og den andre -
typen det sjekkes mot. Samtidig
brukes navnene på funksjoner som konverterer data
til den tilsvarende typen som navn for den andre parameteren:
for strenger - str,
tall - int, lister - list
osv. Funksjonen isinstance returnerer
booleske verdier: hvis elementet samsvarer med
typen, returneres True, i motsatt
tilfelle - False.
Eksempel
La oss si vi har en variabel tst.
La oss sjekke om verdien er
en streng. For dette skriver vi funksjonen isinstance
til høyre for if.
I parameterene sender vi tst og typen
str. Hvis verdien og datatypen
samsvarer, la oss skrive ut den tilsvarende
meldingen:
tst = 'a'
if isinstance(tst, str):
print('string')
Resultat av kjøring av koden:
'string'
Eksempel
La oss nå sjekke om variabelen er et heltall:
tst = 12
if isinstance(tst, int):
print('integer')
Resultat av kjøring av koden:
'integer'
Eksempel
For å sjekke om tst
er et flyttall, bør du sende
typen float som den andre
parameteren til isinstance:
tst = 12.0
if isinstance(tst, float):
print('float')
Resultat av kjøring av koden:
'float'
Eksempel
La oss nå skrive en betingelse for
å sjekke tst for en liste:
tst = [1, 2, 3]
if isinstance(tst, list):
print('list')
Resultat av kjøring av koden:
'list'
Eksempel
La oss sjekke om variabelen er en tuple:
tst = (1, 2, 3)
if isinstance(tst, tuple):
print('tuple')
Resultat av kjøring av koden:
'tuple'
Eksempel
La oss nå sette en betingelse for å finne ut om verdien av variabelen er en ordbok:
tst = {'a': 1, 'b': 2, 'c': 3}
if isinstance(tst, dict):
print('dictionary')
Resultat av kjøring av koden:
'dictionary'
Praktiske oppgaver
Anta at du har en variabel. Sjekk om verdien er et heltall.
Finn ut om den gitte variabelen er et flyttall.
Sjekk om variabelen inneholder en strengverdi.
Sjekk om den gitte variabelen er en ordbok.
Sjekk om den gitte variabelen er et sett.
Sjekk om den gitte variabelen er en tuple.
Sjekk om den gitte variabelen er en liste.