2 Stimmen

benutzerdefinierte Formatangaben in Python

Wie kann in Python eine benutzerdefinierte Formatspezifikation zu einer Klasse hinzugefügt werden? Wenn ich zum Beispiel eine Matrixklasse schreibe, möchte ich %M' (oder so ähnlich) definieren, das dann den gesamten Inhalt der Matrix ausgeben würde...

danke

5voto

Die Definition der __str__() / __unicode__() und/oder __repr__() Methoden können Sie die vorhandenen %s y %r Formatierungsangaben nach Belieben.

0voto

rldrenth Punkte 37

Ich glaube nicht, dass es möglich ist, einen neuen Formatbezeichner für den Druck zu definieren. Sie können vielleicht eine Methode zu Ihrer Klasse hinzufügen, die ein Format festlegt, das Sie verwenden, und die str Methode der Klasse, um die Ausgabe entsprechend der Einstellung anzupassen. Dann würde die Hauptdruckanweisung immer noch einen '%s'-Spezifizierer verwenden und Ihre eigene str .

0voto

Tendayi Mawushe Punkte 24821

Wenn Sie wirklich benutzerdefinierte Spezifizierer verwenden möchten, können Sie dies nicht auf eine Weise tun, die mit dem Rest der Python-Sprache und der Standardbibliothek kompatibel ist. Nutzen Sie die Vorteile, die Python bereits bietet ( %s y %r ) und passen Sie es an Ihre Bedürfnisse an, indem Sie die __str__() o __repr__()

class Matrix(object):
    def __str__(self):
        return convert_to_pretty_matrix_string(self)
    def __repr__(self):
        return convert_to_textual_matrix_format(self)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X