__Repr__ w Pythonie

__Repr__ w Pythonie
Metoda __repr __ () Pythona daje przedstawienie tekstu lub ciągu encji lub obiektu. Proces ten jest określany, ilekroć wywoływana jest metoda encji Rep (). Można powiedzieć, że metodę „Repr” i „__repr__” można użyć zamiennie w tym samym celu. Tekst powrócił musi być właściwą frazą Python, która zostałaby odrzucona, aby ponownie złożyć byt, jeśli jest to możliwe. Funkcja Pythona „__str__” robi to samo, ale istnieje niewielka różnica między obiema funkcjami. Metoda __STR__ jest zaprojektowana do tworzenia wersji czytelnej człowieka, przydatna do śledzenia lub wyświetlania informacji o obiektach. Z drugiej strony metoda __repr__ została zaprojektowana w celu zapewnienia „oficjalnego” tekstowego obrazu obiektu, który można użyć do jego odtworzenia. W naszym artykule skupimy się na obu kluczowych metodach podmiotów Python. Zróbmy nowy początek.

Przykład 01

Otwórz narzędzie Python w twoim systemie, ja.mi., Używamy tutaj Spyder 3. Najpierw przyjrzymy się prostej metodzie Rep. Rozpoczęliśmy nasz kod, inicjowanie zmiennej ciągu z zdaniem ciągów jako wartości. Funkcja drukowania służy do drukowania reprezentacji ciągów zmiennej konsoli „String”. W tym celu wykorzystaliśmy metodę „repr” i wzięliśmy ciąg jako argument. Następnie zastosowaliśmy funkcję „Repr” na niektórych wyrażeniach matematycznych i próbowaliśmy ją wydrukować za pomocą tej samej funkcji „Drukuj.„Rzućmy teraz na wyjście.

String = 'hy! Jestem John'
print (Rep (String))
wydrukować (reper (5.01.11.0))

W wyniku pokazanym poniżej widać, że metoda Reporta pokazuje reprezentację łańcucha zarówno wartości ciągu, jak i obliczenia wyrażenia matematycznego.

Przykład 02

Rzućmy się głębiej na funkcje „Repr” i „Str”, aby wyczyścić różnicę między oboma. Tym razem stosowaliśmy te metody reprezentacji łańcucha na funkcje daty i godziny Pythona. Aby uzyskać datę i godzinę w naszym kodzie, najpierw zaimportowaliśmy moduł DateTime Python za pomocą słowa kluczowego „Importuj”. Musimy więc użyć funkcji „teraz ()” z klasą DatETime w kodzie, aby uzyskać bieżącą datę i godzinę za pośrednictwem jej pakietu i zapisać bieżący znacznik czasu w zmiennej „TD”. Teraz do drukowania bieżącej daty i godziny w formacie ciągów używane są dwie funkcje druku.„Kod został zapisany i jest gotowy do wykonania.

Importuj datetime
td = DatETime.Datetime.Teraz()
Drukuj (TD.__str __ ())
Drukuj (TD.__repr __ ())

Po uruchomieniu tego kodu mamy dwa różne wyniki ciągu. Pierwszy wynik jest generowany metodą „__STR__” i jest dość zrozumiały. Podczas gdy drugi jest generowany przy użyciu metody „__repr__” i jest dla nas dość trudny do zrozumienia.

Przykład 03

Miejmy ostatni, ale nie najmniejszy przykład tego artykułu. W naszym kodzie używamy klasy testowej zdefiniowanej przez użytkownika. Ta klasa definiuje i wdraża funkcję konstruktora, aby zapisać „nazwę” i „wynagrodzenie” w dwóch różnych zmiennych, v1 i v2. Obiekt o nazwie „Val” jest tworzony, aby przekazać dwie wartości dla zmiennej „Nazwa” i „wynagrodzenia” do konstruktora funkcji testowej. Stworzenie obiektu „VAL” powoduje automatyczne działanie konstruktora klasy testowej. Metoda „__STR__” i „__repr__” jest wywoływana za pomocą obiektu „VAL” osobno i drukowanie wyników. Obie funkcje nie dostały nic, ponieważ obiekt „val” został właśnie utworzony i nie doceniał tego. Może nie odpowiedzieć nam tak, jak tego chcemy. Sprawdźmy to.

Test klasowy:
def __init __ (ja, imię, pensja):
samego siebie.v1 = nazwa
samego siebie.v2 = wynagrodzenie
val = test („John”, 50000)
Drukuj (val.__str __ ())
Drukuj (val.__repr __ ())

Tutaj domyślne wykonywanie obu funkcji nie ma żadnego użytku. Zaimplementujmy teraz obie funkcje.

Tak więc po konstruktorze w klasie zaimplementowaliśmy zarówno metody „__STR__”, jak i „__repr__” osobno, zwracając format łańcucha tekstu. Zwraca również wartości przypisane do konstruktora do wątku wywołania, i.mi., obiekt „val”. Zapiszmy najpierw nowo zaktualizowany kod Pythona, aby zobaczyć jego wyniki.

Test klasowy:
def __init __ (ja, imię, pensja):
samego siebie.v1 = nazwa
samego siebie.v2 = wynagrodzenie
def __str __ (jaźń):
zwróć nazwę f'user to self.v1 i jego/jej pensja to self.v2 '
def __repr __ (ja):
return f'user (name = self.v1, wynagrodzenie = self.v2) '
val = test („John”, 50000)
Drukuj (val.__str __ ())
Drukuj (val.__repr __ ())
Drukuj (val.__repr __ ())

Pierwsze wyjście jest spowodowane metodą „__STR__” i jest dość zrozumiałe. Drugie wyjście jest zrozumiałe, ale nie tak bardzo, jak wyjście funkcji „__str__”.

Wniosek

W tym artykule dotyczy użycia metody „__repr__” w kodzie Python. Omówiliśmy również metodę „__STR__” zastosowaną w tym artykule do porównania różnic między funkcjami. Sprawiłoby to również wyraźniejsze zrozumienie metody „__repr__”. Mamy z niecierpliwością mamy nadzieję, że ten artykuł będzie najlepszy dla naszych użytkowników w celu pomocy w Python.