Python repr()-Funktion
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)}")
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:
- Für einfache Strings liefern beide dasselbe Ergebnis.
- Für datetime,
repr()gibt einen Ausdruck zurück, der das Objekt erneut erzeugen kann. - 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
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 integrierte Funktionen
Andere Erweiterungen