Python repr()-Funktion

Python3 内置函数Python3 integrierte Funktionen


repr()ist eine in Python integrierte Funktion, mit der die druckbare Darstellung eines Objekts abgerufen wird.

repr()Gibt die offizielle String-Darstellung eines Objekts zurück, die normalerweise verwendet werden kann, um das Objekt neu zu erstellen. Sie unterscheidet sich vonstr()darin,repr()dass sie stärker auf Debugging und Entwicklung ausgerichtet ist, währendstr()Es ist auf Benutzerfreundlichkeit ausgerichtet.

Wortdefinition: reprJarepresentationEs ist die Abkürzung für "representation".


Grundlegende Syntax und Parameter

Syntaxformat

repr(object)

Parameterbeschreibung

  • Parameter object:
    • Typ: Beliebiges Objekt
    • Beschreibung: Das Objekt, dessen String-Darstellung ermittelt werden soll.

Funktionsbeschreibung

  • Rückgabewert: Gibt einen String zurück, normalerweise einen String, der das Objekt darstellen kann.
  • Spezielle Methode: Objekte können durch Definieren__repr__einer Methode den Rückgabewert anpassen.

Beispiele

Beispiel 1: repr() vs str()

Beispiele

# Unterschied zwischen Strings
s = "hello"
print(f"str: '{str(s)}'")    # Ausgabe: str: 'hello'
print(f"repr: '{repr(s)}'")  # Ausgabe: repr: 'hello'

# Unterschied zwischen datetime-Objekten
from datetime import datetime
dt = datetime.now()
print(f"str: {str(dt)}")
print(f"repr: {repr(dt)}")

# Unterschied zwischen benutzerdefinierten Klassen
class Person:
    def __init__(self, name):
        self.name = name
    def __str__(self):
        return f"Person: {self.name}"
    def __repr__(self):
        return f"Person(name='{self.name}')"

p = Person("Tom")
print(f"str: {str(p)}")
print(f"repr: {repr(p)}")

Erwartete Ausgabe:

str: 'hello'
repr: 'hello'
str: 2024-01-15 10:30:45.123456
repr: datetime.datetime(2024, 1, 15, 10, 30, 45, 123456)
str: Person: Tom
repr: Person(name='Tom')

Codeanalyse:

  1. Für einfache Strings liefern beide dasselbe Ergebnis.
  2. Für datetime,repr()gibt einen Ausdruck zurück, der das Objekt erneut erzeugen kann.
  3. Benutzerdefinierte Klassen können jeweils definieren__str__und__repr__Methoden.

Beispiel 2: repr() zum Debuggen verwenden

Beispiele

# Versteckte Zeichen anzeigen
s = "hello\nworld"
print(f"str: {str(s)}")
print(f"repr: {repr(s)}")

# Anführungszeichen anzeigen
text = "She said 'hello'"
print(f"str: {str(text)}")
print(f"repr: {repr(text)}")

# In einer interaktiven Umgebung
# Direktes Eingeben eines Variablennamens ruft repr() auf

Erwartete Ausgabe:

str: hello
world
repr: 'hello\nworld'
str: She said 'hello'
repr: "She said 'hello'"

repr()Es kann versteckte Zeichen (wie Zeilenumbruchzeichen) und Anführungszeichen anzeigen, was beim Debuggen praktisch ist.


Python3 内置函数Python3 integrierte Funktionen


Andere Erweiterungen