Python Hasattr

Python Hasattr
Python er et høyt nivå, avansert, engelskspråk som syntaks, lett å lære programmeringsspråk. Den har forskjellige typer funksjoner, metoder, for det meste innebygd mens noen kan utformes på kjøretid. Hasattr () er en Pythons innebygde verktøyfunksjon forkortet som 'har et attributt.'Det kan brukes med brukerdefinerte klasser. Det avgjør om et objekt har et spesifikt attributt eller ikke. For eksempel returnerer det sant hvis et bestemt objekt har den spesifiserte attributtet, mens det returnerer usant hvis det ikke har et spesifisert objekt. Syntaksen til Hasattr () er Hasattr (objekt, attributt).

Hasatr () er selve funksjonen, 'objekt' refererer til det nødvendige objektet, 'attributt' refererer til navnet på det spesifiserte attributtet som må sjekkes. Hvis 'objektet' har 'attributtet', vil hasatr () tilbake sant, vil det returnere falskt. HASATTR () -funksjonen gir bedre lesbarhet sammenlignet med andre konvensjonelle Python -metoder som brukes for å sjekke attributtverdien. Det er også nyttig i å sjekke nøkler å ignorere unødvendige feil som oppstår mens du sjekker fraværende nøkler. Ved hjelp av eksempler vil vi lære å bruke Hasattr () -metoden til Python -språket i denne artikkelen. Du kan effektivt bruke Hasattr () -funksjonen i skriptene dine innen slutten av denne artikkelen. La oss starte med en grunnleggende illustrasjon.

Eksempel 1:

I det første eksemplet vil vi definere en enkel klasse som inneholder navnet på en student og klassen som studenten studerer. Etter det vil vi sjekke attributtene til klassen med Hasattr () -funksjonen. En brukerdefinert klasse er opprettet med navnet 'Student,' den første attributtet er 'klasse' og har verdi '5', mens den andre attributtet er 'Navn' og har verdi 'Tylor.'Det neste trinnet er å sjekke attributtene til klassen med Hasattr () -funksjonen. Først har vi sjekket "Navn" -attributtet til klassen, deretter 'klasse' attributtet, og deretter 'Fathername' -attributtet. Her kan du se koden.

Klasseelev:
Klasse = 5
Navn = 'Tylor'
Student = student ()
trykk ('Navnet på studenten er:', Hasattr (student, 'navn'))
Trykk ('Student \' s klasse er: ', Hasattr (student,' klasse '))
trykk ('Student \' s farsnavn er: ', Hasattr (Student,' Fathername '))

Utgangen til koden ovenfor er som følger:

Hvis du observerer at de to første utgangene er 'sanne.'I kontrast er den siste utgangen' falsk.'Som diskutert tidligere, vil Hassttr () returnere' True ', hvis et spesifisert objekt har et bestemt spesifisert objekt. I kontrast returnerer det 'usant' hvis det bestemte objektet ikke har et bestemt spesifisert objekt. Klassen 'Student' har to attributter, 'klasse', "Navn", mens den ikke har 'Fathername' -attributtet, og det er grunnen til.

Eksempel 2:

La oss se på noen kompliserte, men strukturerte programmer for å bli kjent med funksjonaliteten til Hasattr () -funksjonen. Her definerte vi en klasse ved hjelp av def_init_ () -funksjonen. Klassen består igjen av studentenes data. Den har to attributter, 'Rollno' og 'karakterer.'Dataene blir gitt til begge attributtene til klassen ved å ringe klassenavnet; Student (35, 'M'), der '35' er 'Rollno' og 'M' er studentens karakter. Senere la vi til en annen attributt i klassen: Studentens alder. Dette kan vi oppnå ved å lage en annen forekomst av klassen med et annet spesifisert navn; For eksempel student1 = student () og student1.Alder = 9. Se koden gitt nedenfor for å få en klar forståelse av programmet.

Klasseelev:
Def __init __ (Selff, Rollno, karakterer):
Selff.rollno = rollno
Selff.Karakterer = karakterer
DEF Display (SELFF):
trykk ("Rullenummeret er:", Selff.Rollno)
trykk ("Karakteren er:", Selff.karakterer)
Student1 = Student (35, 'M')
Student1.Alder = 9
Print (Hasattr (Student1, 'Age'))

Utgangen til koden ovenfor er som følger:

Som du kan se, har Hasattr () -funksjonen returnert 'True' siden 'Age' -attributtet legges til klassen i senere trinn.

Eksempel 3:

La oss få en ytelsesanalyse av HASATTR () -funksjonen sammenlignet med Try -setningen. I dette eksemplet vil vi se hvilken som er bedre, Hasattr () -funksjonen eller prøveuttalelsen til Python -språket. La oss se koden og utdataene først, så får vi se hvilken som er bedre enn den andre.

Importer tid
Klassesammenligning:
name = "hasattribute"
Tid = 5
comp = sammenligning ()
startHasattr = tid.tid()
if (hasattr (komp, 'tid')):
trykk ("Tid er der")
ellers:
Print ("No Time")
trykk ("The Hasattr () har tatt seg tid til å utføre:" + STR (tid.tid () - starthasattr))
Startry = tid.tid()
prøve:
trykk (komp.tid)
trykk ("Tid er der")
Bortsett fra attributt:
Print ("No Time")
trykk ("Try -uttalelsen har tatt seg tid til å utføre:" + STR (tid.TID () - Startry))

Som du kan se, har klassen 'sammenligning' to attributter, 'navn' og 'tid.'Først har vi implementert HASATTR () -funksjonen for å sjekke om' sammenligning '-klassen har attributtet' tid 'eller ikke. Så har vi sjekket utførelsestiden for begge Hasattr () -funksjonene og prøv uttalelse ved hjelp av tiden () -funksjonen. Utgangen fra ovennevnte kode er gitt nedenfor:

Legg merke til at hasatr () returnerte 'falsk', men klassen 'sammenligning' har attributtet 'tid.'Det viktigste poenget å legge merke til her er at vi har gått' tid 'i Hasattr () mens' sammenligning '-klassen har' tid 'attributt. Python er et saksfølsomt språk, så 'tid' og 'tid' er to forskjellige attributter. Dessuten, hvis du ser utførelsestiden, vil du legge merke til at Try -setningen er raskere enn Hasattr () -funksjonen. Imidlertid gir Hasattr () -funksjonen bedre lesbarhet, og det er grunnen til.

Konklusjon:

Vi lærte om Python Hasattr () innebygd funksjon i denne artikkelen. Ved hjelp av enkle så vel som komplekse eksempler har vi lært hvordan vi implementerer Hasattr () -funksjonen i programmene våre. Videre har vi sammenlignet utførelsestiden for Hasattr () med Try -uttalelsen, noe som beviste at selv om Try -uttalelsen er rask, er Hasattr () -funksjonen foretrukket på grunn av dens forbedrede lesbarhet.