Anpassen der Klasseninstanzdarstellung beim Drucken
Wenn Sie versuchen, eine Instanz einer Klasse zu drucken, stoßen Sie möglicherweise auf eine Standarddarstellung wie den Speicher Adresse. Um das gedruckte Erscheinungsbild Ihrer Klasseninstanzen anzupassen, vertiefen Sie sich in die Konzepte von __str__ und __repr__.
Die __str__-Methode
Durch die Definition einer __str__-Methode innerhalb Ihrer Klasse können Sie kann steuern, wie Instanzen beim Drucken dargestellt werden. Diese Methode sollte eine Zeichenfolge zurückgeben, die den gewünschten Anzeigetext enthält. Zum Beispiel:
>>> class Test: >>> def __init__(self): >>> self.a = 'foo' >>> def __str__(self): >>> return f"Test with a: {self.a}"
Wenn Sie nun eine Instanz dieser Klasse drucken, erhalten Sie eine benutzerdefinierte Zeichenfolgendarstellung:
>>> t = Test() >>> t Test with a: foo >>> print(t) Test with a: foo
Die __repr__-Methode
Wenn die Methode __repr__ definiert ist, hat sie beim Drucken mit der Funktion repr() oder in interaktiven Eingabeaufforderungen Vorrang vor __str__. Ziel ist es, eine detailliertere Darstellung bereitzustellen, die zum Debuggen oder Rekonstruieren geeignet ist. Wenn Sie __repr__ ohne __str__ definieren, dient es auch als gedruckte Darstellung.
Zum Beispiel:
>>> class Test: >>> def __init__(self): >>> self.a = 'foo' >>> def __repr__(self): >>> return f"Test(a={self.a})"
Beim Drucken:
>>> t = Test() >>> t Test(a='foo') >>> repr(t) "Test(a='foo')"
Zusammenfassung :
Um die gedruckte Darstellung Ihrer Klasseninstanzen anzupassen, definieren Sie eine __str__-Methode für gewünschten Anzeigetext oder eine __repr__-Methode für eine detaillierte Darstellung. Wenn beide definiert sind, wird __str__ zum Drucken verwendet, während __repr__ für die repr()-Funktion verwendet wird.
Das obige ist der detaillierte Inhalt vonWie kann ich die Ausgabe beim Drucken einer Klasseninstanz in Python anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!