The__repr__ i Python

The__repr__ i Python
__REPR __ () -metoden til Python gir en tekstlig eller strengskildring av en enhet eller et objekt. Denne prosessen kalles hver gang enhetens RePR () -metode blir påkalt. Du kan si at "repr" -metoden og "__repr__" kan brukes om hverandre for samme formål. Teksten som er tilbakeført må være en skikkelig python -setning som vil bli avgitt for å samle enheten hvis du er mulig. En "__str__" -funksjon av Python gjør det samme, men det er en liten forskjell mellom begge funksjonene. __Str__-metoden er designet for å produsere en menneskelig lesbar versjon, nyttig for å spore eller vise objektinformasjon. __Repr__ -metoden er derimot designet for å gi et "offisielt" tekstbilde av objektet som kan brukes til å gjenskape det. Vi vil fokusere på begge viktige Python -enhetsmetoder i artikkelen vår i dag. La oss få en ny start.

Eksempel 01

Åpne Python -verktøyet på systemet ditt, jeg.e., Vi bruker Spyder 3 her. Vi tar en titt på den enkle REPR -metoden først. Vi har startet koden vår ved å initialisere en strengvariabel med en strengsetning som en verdi. Utskriftsfunksjonen brukes til å skrive ut strengrepresentasjonen av konsollens variable “String” -verdi. For dette har vi brukt “repr” -metoden og tatt streng som et argument i den. Etter det brukte vi “repr” -funksjonen på noen matematiske uttrykk og prøvde å skrive den ut via samme funksjon, “skriv ut.”La oss se på utgangen nå.

String = 'Hy! Jeg er John '
print (repr (streng))
trykk (Repr (5.0/11.0))

I utgangen som er vist nedenfor, kan du se at REPR -metoden viser strengrepresentasjonen av både strengverdien og den matematiske ekspresjonsberegningen.

Eksempel 02

La oss se et dypere blikk på "repr" og "str" ​​-funksjonene for å fjerne forskjellen mellom begge. Denne gangen har vi brukt disse strengrepresentasjonsmetodene på Pythons dato og tidsfunksjoner. For å få dato og klokkeslett i koden vår, har vi først importert DateTime -modulen til Python via "Import" nøkkelordet. Så vi må bruke "nå ()" -funksjonen med DateTime -klassen i koden for å få gjeldende dato og tid via pakken og lagre gjeldende tidsstempel i "TD" -variabelen. Nå brukes to utskriftsfunksjoner til å skrive ut gjeldende dato og klokkeslett i et strengformat ved å bruke "__str__" og "__repr__" -funksjonen på variabelen objektet "TD.”Kode er lagret og er klar til å bli utført.

Importer DateTime
TD = DateTime.dato tid.nå()
trykk (TD.__str __ ())
trykk (TD.__REPR __ ())

Når vi kjører denne koden, har vi fått to forskjellige strengresultater. Det første resultatet genereres av “__str__” -metoden og er ganske forståelig. Mens den andre genereres ved å bruke metoden “__repr__” og er ganske vanskelig for oss å forstå.

Eksempel 03

La oss ha et siste, men ikke minst eksempel på denne artikkelen. Vi har brukt en brukerdefinert testklasse i koden vår. Denne klassen definerer og implementerer konstruktørfunksjonen for å lagre "navnet" og "lønn" i to forskjellige variabler, V1 og V2. Et objekt som heter "Val" opprettes for å passere de to verdiene for "Navnet" og "lønn" -variabelen til testfunksjonskonstruktøren. Opprettelsen av et objekt “val” får konstruktøren til testklassen til å kjøre automatisk. “__Str__” og “__repr__” -metoden kalles ved å bruke objektet “val” separat og skrive ut resultatene. Begge funksjonene fikk ingenting som objektet “val” nettopp ble opprettet og ikke verdsatte det. Det reagerer kanskje ikke på oss slik vi vil ha det. La oss sjekke det.

Klassetest:
def __init __ (selv, navn, lønn):
selv-.v1 = navn
selv-.v2 = lønn
val = test ('John', 50000)
trykk (Val.__str __ ())
trykk (Val.__REPR __ ())

Her er begge funksjonene til begge funksjonene som utføres hele. La oss implementere begge funksjonene nå.

Så etter konstruktøren i klassen har vi implementert både “__str__” og “__repr__” -metodene hver for seg, og returnerer strengformatet til en tekst. Den returnerer også verdiene som er tilordnet konstruktøren til den anropende tråden, i.e., "Val" -objektet. La oss lagre den nylig oppdaterte Python -koden for å se resultatene.

Klassetest:
def __init __ (selv, navn, lønn):
selv-.v1 = navn
selv-.v2 = lønn
def __str __ (selv):
Return F'User -navnet er selv.v1 og hans/hennes lønn er selv.v2 '
def __repr __ (selv):
Returner F'User (navn = selv.v1, lønn = selv.v2) '
val = test ('John', 50000)
trykk (Val.__str __ ())
trykk (Val.__REPR __ ())
trykk (Val.__REPR __ ())

Den første utgangen er forårsaket av “__str__” -metoden og er ganske forståelig. Den andre utgangen er forståelig, men ikke så mye som "__str__" -funksjonsutgangen.

Konklusjon

Denne artikkelen handler om å bruke “__repr__” -metoden i Python Code. Vi har også diskutert “__str__” -metoden som ble brukt i denne artikkelen for å sammenligne forskjeller mellom funksjoner. Det vil også få deg til å forstå “__repr__” -metoden tydeligere. Vi håper ivrig at denne artikkelen vil være best for våre brukere for å få hjelp i Python.