Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in die Verwendung von Templates in Python

Einführung in die Verwendung von Templates in Python

PHPz
PHPzOriginal
2017-04-21 14:54:152679Durchsuche

Vorlage ist zweifellos eine gute Sache, sie kann das Format von Zeichenfolgen korrigieren und sie wiederverwenden. Gleichzeitig ermöglicht Template den Entwicklern auch, das Format und den Inhalt der Zeichenfolge separat zu betrachten, was den Druck auf die Entwickler praktisch verringert.

Template gehört zu einer Klasse in string, wenn Sie es also verwenden möchten, können Sie es wie folgt aufrufen

from string import Template

Template hat einen speziellen Bezeichner $, der wie folgt lautet Regeln:

Seine Hauptimplementierungsmethode ist $xxx, wobei xxx eine Zeichenfolge ist, die den Python-Benennungsregeln entspricht, d. h. sie darf nicht mit einer Zahl beginnen, kein Schlüsselwort sein usw.

Wenn $xxx mit anderen Zeichenfolgen in Kontakt sein muss, können Sie xxx mit {} umschließen (in der Vergangenheit schien es „()“ zu verwenden, in einem meiner Nachschlagewerke stand dies, aber die aktuelle Version sollte nur „{} verwenden '). Beispielsweise gibt es in aaa${xxx}aaa

Vorlage zwei wichtige Methoden: replacement und safe_substitute.

Beide Methoden können Zeichenfolgen zurückgeben, indem sie Parameter abrufen

>>s=Template(There $a and $b)
>>print s.subtitute(a='apple',b='banana')
There apple and banana
>>print s.safe_substitute(a='apple',b='banbana')
There apple and banbana

Sie können Daten auch direkt übergeben, indem Sie das Wörterbuch abrufen, wie folgt:

>>s=Template(There $a and $b)
>>d={'a':'apple','b':'banbana'}
>>print s.substitute(d)
There apple and banbana

Der Unterschied zwischen ihnen liegt in der Art und Weise, wie sie mit fehlenden Parametern umgehen.

Template wird implementiert, indem zunächst eine Zeichenfolge über Template initialisiert wird. Diese Zeichenfolgen enthalten nacheinander Schlüssel. Durch den Aufruf von „substitute“ oder „safe_subsititute“ wird der Schlüsselwert mit den in der Methode übergebenen Parametern abgeglichen, wodurch die Zeichenfolge an der angegebenen Stelle importiert wird. Ein Vorteil dieser Methode besteht darin, dass kein „%s“ oder ähnliches ausgegeben werden muss. Die Reihenfolge jedes Parameters muss festgelegt werden. Solange der Schlüssel korrekt ist, kann der Wert korrekt eingefügt werden. Auf diese Weise können Sie beim Einfügen vieler Daten aufatmen. Aber selbst wenn es eine so faule Methode gibt, gibt es immer noch keine Garantie dafür, dass keine Fehler auftreten. Was passiert, wenn ein Schlüssel weniger eingegeben wird?

Ersatz ist eine ernstzunehmende Methode. Wenn ein Schlüssel nicht eingegeben wird, wird auf jeden Fall ein Fehler gemeldet. Obwohl es hässlich sein wird, kann das Problem gefunden werden.

safe_substitute meldet keinen Fehler, sondern gibt $xxx direkt in die Ergebniszeichenfolge ein, z. B.

there apple and $b

. Der Vorteil besteht darin, dass das Programm immer korrekt ist und Sie nicht Ich musste einen Fehler nach dem anderen machen. Es machte mich unglücklich.

Vorlagen können vererbt werden und ihre Unterklassen können einige „Personalisierungs“-Vorgänge ausführen...

Das $-Zeichen kann durch Ändern des Trennzeichens in andere Zeichen, z. B. „#“, geändert werden Der neue Bezeichner muss jedoch den Spezifikationen regulärer Ausdrücke entsprechen.

Sie können die Schlüsselbenennungsregeln ändern, indem Sie das ID-Muster ändern. Beispielsweise ist festgelegt, dass das erste Zeichen mit einem beginnen muss, was für die Standardisierung der Benennung sehr gut ist. Selbstverständlich wird dies auch durch regelmäßige Vertretung erreicht.

from string import Template
class MyTemplate(Template):
  delimiter = "#"
  idpattern = "[a][_a-z0-9]*"
def test():
  s='#aa is not #ab'
  t=MyTemplate(s)
  d={'aa':'apple','ab':'banbana'}
  print t.substitute(d)
if name=='main':
  test()

Das obige ist der detaillierte Inhalt vonEinführung in die Verwendung von Templates in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn