Pythons String-Vorlagen

Python ist eine interpretierte, objektorientierte Programmiersprache auf hohem Niveau. Es ist leicht zu erlernen, da seine Syntax die Lesbarkeit betont, was die Kosten für die Programmwartung verringert. Viele Programmierer lieben die Arbeit mit Python, weil ohne die Kompilierung das Testen und Debuggen schnell vonstatten geht.

Python-Web-Templating

Vorlagen, insbesondere Web-Vorlagen, stellen Daten in Formularen dar, die normalerweise von einem Betrachter gelesen werden können. Die einfachste Form einer Template-Engine ersetzt die Vorlage mit Werten, um die Ausgabe zu erzeugen. 

Neben den Zeichenfolgenkonstanten und den veralteten Zeichenfolgenfunktionen, die zu Zeichenfolgenmethoden verschoben wurden, enthält das Zeichenfolgenmodul von Python auch Zeichenfolgenvorlagen. Die Vorlage selbst ist eine Klasse, die eine Zeichenfolge als Argument erhält. Das aus dieser Klasse instanziierte Objekt wird als Vorlagenzeichenfolgenobjekt bezeichnet. Template-Strings wurden erstmals in Python 2.4 eingeführt. Während Zeichenfolgenformatierungsoperatoren das Prozentzeichen für Ersetzungen verwendeten, werden im Vorlagenobjekt Dollarzeichen verwendet.

  • $$ ist eine Fluchtsequenz; es wird durch ein einzelnes ersetzt $.
  • $ Benennt einen Substitutionsplatzhalter, der mit einem Zuordnungsschlüssel von übereinstimmt. Standardmäßig muss eine Python-ID geschrieben werden. Das erste Nicht-Bezeichner-Zeichen nach dem $ -Zeichen beendet diese Platzhalterspezifikation.
  • $ ist gleichbedeutend mit $. Dies ist erforderlich, wenn dem Platzhalter gültige Bezeichnerzeichen folgen, diese jedoch nicht Teil des Platzhalters sind, z. B. $ noun ification.

Außerhalb dieser Verwendungen des Dollarzeichens wird bei jedem Auftreten von $ ein ValueError ausgelöst. Die über Vorlagenzeichenfolgen verfügbaren Methoden lauten wie folgt:

  • Klasse Zeichenfolge. Vorlage(Vorlage): Der Konstruktor akzeptiert ein einzelnes Argument, nämlich die Vorlagenzeichenfolge.
  • Ersatz(Zuordnung, ** Schlüsselwörter): Methode, die die Zeichenfolgenwerte ersetzt (Kartierung) für die Template-String-Werte. Bei der Zuordnung handelt es sich um ein wörterbuchartiges Objekt, auf dessen Werte als Wörterbuch zugegriffen werden kann. Wenn die Schlüsselwörter Argument wird verwendet, es repräsentiert Platzhalter. Wo beides Kartierung und Schlüsselwörter verwendet werden, hat letzteres Vorrang. Wenn ein Platzhalter fehlt Kartierung oder Schlüsselwörter, Ein KeyError wird ausgelöst.
  • Sicher_Ersatz(Zuordnung, ** Schlüsselwörter): Funktioniert ähnlich wie substitute (). Wenn jedoch ein Platzhalter fehlt Kartierung oder Schlüsselwörter, Der ursprüngliche Platzhalter wird standardmäßig verwendet, wodurch der KeyError vermieden wird. Außerdem wird bei jedem Auftreten von "$" ein Dollarzeichen zurückgegeben.

Vorlagenobjekte haben auch ein öffentlich verfügbares Attribut:

  • Vorlage ist das Objekt, das an das Template-Argument des Konstruktors übergeben wird. Während der schreibgeschützte Zugriff nicht erzwungen wird, sollten Sie dieses Attribut in Ihrem Programm nicht ändern.

Die folgende Beispielshellsitzung dient zur Veranschaulichung von Vorlagenzeichenfolgenobjekten.

>>> aus String Import Template 

>>> s = Template ('$ when, $ who $ action $ what') 

>>> s.substitute (wenn = 'Im Sommer', wer = 'John', action = 'trinkt', was = 'Eistee') 'Im Sommer trinkt John Eistee'. 

>>> s.substitute (wenn = 'Nachts', wer = 'Jean', action = 'isst', was = 'Popcorn') 'Nachts isst Jean Popcorn'. 

>>> an Vorlage '$ wann, $ wer $ was.' 

>>> d = dict (wenn = 'im Sommer') 

>>> Vorlage ('$ who $ action $ what $ when'). Safe_substitute (d) '$ who $ action $ what in the summer'