Eksempler på __str__ i Python i Windows 10
Nedenfor er noen av de forskjellige bruken av __str__ -funksjonen til Python. Ved å gå gjennom disse eksemplene grundig, vil du forstå hvordan funksjonaliteten til denne funksjonen skiller seg mellom standard og brukerdefinerte klasser.
Eksempel 1
I dette eksemplet ønsket vi å bruke en forhåndsdefinert eller standard python-klasse, jeg.e., DateTime, med __str__ -funksjonen. Her vil vi oppgi at for de forhåndsdefinerte eller standardklassene blir alle disse funksjonene implementert som standard. Du trenger ikke å definere dem manuelt. Koden som vi skrev for å demonstrere dette eksemplet er som følger:
I denne Python -koden importerte vi først standard "dato tid”Klasse. Etter det erklærte vi en variabel som heter “nåværende”Og tildelt den verdien av“dato tid.nå()”Funksjonen til“dato tid”Python -klasse. Denne funksjonen returnerer gjeldende systemdato og klokkeslett. Etter det ønsket vi å skrive ut verdien av __str__ -funksjonen etterfulgt av verdien av __repr__ -funksjonen.
Utgangen produsert som et resultat av å utføre dette Python -skriptet er vist på bildet nedenfor:
Vi vet at __str__- og __repr__-funksjonene ble implementert som standard siden vi brukte en forhåndsdefinert klasse, i.e., dato tid. __Str__ -funksjonen returnerte ganske enkelt utgangen fra “dato tid.nå()”Funksjon i form av en streng. Derimot returnerte __repr__ -funksjonen utgangen fra "dato tid.nå()”Funksjon i et format som denne utgangen kan rekonstrueres. Poenget som skal bemerkes her er at disse resultatene bare er basert på standardimplementeringene av __str__ og __repr__ -funksjonene til Python.
Eksempel 2
I dette eksemplet ønsket vi å bruke __str__-funksjonen med en brukerdefinert klasse på en måte som både __str__- og __repr__-funksjonene ikke ble definert. Koden som vi skrev for å demonstrere dette eksemplet er som følger:
I denne Python -koden erklærte vi en klasse som heter “Ansatt”. Deretter initialiserte vi attributtene som var emp_name og emp_id. Etter det opprettet vi et objekt av "Ansatt”Klasse, jeg.e., “E”Og ved hjelp av dette objektet opprettet vi en ansattes forekomst med emp_name”Hasan”Og emp_id”1”. Til slutt trykket vi ganske enkelt verdien av __str__ -funksjonen etterfulgt av verdien av __repr__ -funksjonen. Vi vil nevne igjen at vi ennå ikke har implementert noen av disse funksjonene.
Utgangen som ble produsert som et resultat av å utføre dette Python -skriptet er vist på bildet nedenfor:
Siden vi har behandlet en brukerdefinert klasse i dette eksemplet, skulle vi implementere __str__- og __repr__-funksjonene selv. Vi gjorde imidlertid ikke det, og det er grunnen til at vi ganske enkelt mottok adressen til "Ansatt”Objekt som output.
Eksempel 3
I dette eksemplet ønsket vi å bruke __str__-funksjonen med en brukerdefinert klasse slik at bare __repr__-funksjonen vil bli definert og ikke __str__-funksjonen. Koden som vi skrev for å demonstrere dette eksemplet er som følger:
I denne Python -koden erklærte vi en klasse som heter “Ansatt”. Deretter initialiserte vi attributtene som var emp_name og emp_id. Vi har også definert __repr__ -funksjonen, og denne definisjonen er tilpasset i henhold til vårt eget valg. Etter det opprettet vi et objekt av "Ansatt”Klasse, jeg.e., “E”Og ved hjelp av dette objektet opprettet vi en ansattes forekomst med emp_name”Hasan”Og emp_id”1”. Til slutt trykket vi ganske enkelt verdien av __str__ -funksjonen etterfulgt av verdien av __repr__ -funksjonen.
Utgangen som ble produsert som et resultat av å utføre dette Python -skriptet er vist på bildet nedenfor:
Siden vi har definert __repr__ -funksjonen i koden vår, ble den samme definisjonen brukt til å produsere utgangen fra både __repr__ og __str__ -funksjonene.
Eksempel 4
I dette eksemplet ønsket vi å bruke __str__-funksjonen med en brukerdefinert klasse på en måte som både __repr__- og __str__-funksjonene ble definert. Koden som vi skrev for å demonstrere dette eksemplet er som følger:
I denne Python -koden erklærte vi en klasse som heter “Ansatt”. Deretter initialiserte vi attributtene som var emp_name og emp_id. Vi har også definert __repr__- og __str__ -funksjonene, og disse definisjonene tilpasses etter vårt eget valg. __Str__ -funksjonen vil vise utgangen i form av en fullstendig uttalelse, mens __repr__ -funksjonen ganske enkelt vil returnere strengutgangsverdiene i vårt tilfelle. Etter det opprettet vi et objekt av "Ansatt”Klasse, jeg.e., “E” og ved hjelp av dette objektet opprettet vi en ansattes forekomst med emp_name ”Hasan”Og emp_id”1”. Til slutt trykket vi ganske enkelt verdien av __str__ -funksjonen etterfulgt av verdien av __repr__ -funksjonen.
Utgangen som ble produsert som et resultat av å utføre dette Python -skriptet er vist på bildet nedenfor:
Siden både __str__- og __repr__ -funksjonene ble definert i koden vår og definisjonene av begge disse funksjonene skilte seg fra hverandre, er utgangene til disse to funksjonene forskjellige.
Eksempel 5
I dette eksemplet ønsket vi å bruke __str__-funksjonen med en brukerdefinert klasse på en måte som bare __str__-funksjonen vil bli definert og ikke __repr__-funksjonen. Koden som vi skrev for å demonstrere dette eksemplet er som følger:
I denne Python -koden erklærte vi en klasse som heter “Ansatt”. Deretter initialiserte vi attributtene som var emp_name og emp_id. Vi har også definert __str__ -funksjonen, og denne definisjonen er tilpasset i henhold til vårt eget valg. Etter det opprettet vi et objekt av "Ansatt”Klasse,“E”, Og ved hjelp av dette objektet opprettet vi en ansattes forekomst med emp_name“Hasan”Og emp_id”1”. Til slutt trykket vi ganske enkelt verdien av __str__ -funksjonen etterfulgt av verdien av __repr__ -funksjonen.
Utgangen som ble produsert som et resultat av å utføre dette Python -skriptet er vist på bildet nedenfor:
Siden vi bare hadde definert __str__ -funksjonen i koden vår, ble verdien skrevet ut riktig. Mens for __repr__ -funksjonen, mottok vi igjen adressen til vår "Ansatt”Objekt siden denne funksjonen ikke ble definert i koden vår.
Konklusjon
I denne guiden introduserte vi deg først for __str__- og __repr__ -funksjonene til Python. For å forstå arbeidet med disse funksjonene godt, delte vi fem forskjellige eksempler med deg der vi viste deg hvordan implementeringen av en eller begge disse funksjonene påvirker utgangen fra Python -koden din. Det siste vi vil minne deg om er hvis du bruker disse funksjonene med en standardklasse, trenger du ikke å definere disse funksjonene eksplisitt. For de brukerdefinerte klassene er det imidlertid obligatorisk å definere disse funksjonene.