Pythons strängmallar

Python är ett tolkat, objektorienterat, hög programmeringsspråk. Det är lätt att lära sig eftersom dess syntax betonar läsbarhet, vilket minskar kostnaderna för programunderhåll. Många programmerare älskar att arbeta med Python eftersom-utan kompilering steg-testning och felsökning går snabbt.

Python Web Templating

Templering, särskilt webbmallning, representerar data i former som vanligtvis är avsedda att vara läsbara av en tittare. Den enklaste formen för en mallmotor ersätter värden i mallen för att producera utgången. 

Bortsett från strängkonstanterna och de utskrivna strängfunktionerna, som flyttade till strängmetoder, innehåller Pythons strängmodul också strängmallar. Själva mallen är en klass som får en sträng som argument. Objektet som instanseras från den klassen kallas ett mallsträngobjekt. Mallsträngar introducerades först i Python 2.4. Där strängformateringsoperatörer använde procenttecknet för ersättningar, använder mallobjektet dollartecken.

  • $$ är en flyktningssekvens; den ersätts med en enda $.
  • $ namnger en substitutionsplatshållare som matchar en mappningsnyckel med. Som standard måste stavas en Python-identifierare. Den första icke-identifieraren efter karaktären $ avslutar denna platshållarspecifikation.
  • $ motsvarar $. Det krävs när giltiga identifieringstecken följer platshållaren men inte ingår i platshållaren, till exempel $ subst. Ification.

Utanför dessa användningar av dollartecknet orsakar varje utseende på $ en ValueError att höjas. De metoder som finns tillgängliga genom mallsträngar är följande:

  • Klass sträng. Mall(mall): Konstruktören tar ett enda argument, som är mallsträngen.
  • Ersättning(mapping, ** nyckelord): Metod som ersätter strängvärdena (kartläggning) för mallsträngvärden. Kartläggning är ett ordbordsliknande objekt och dess värden kan komma åt som en ordlista. Om nyckelord argument används, det representerar platshållare. Där båda kartläggning och nyckelord används, den sistnämnda har företräde. Om en platshållare saknas kartläggning eller nyckelord, en KeyError kastas.
  • Säker_ersättning(mapping, ** nyckelord): Funktioner på samma sätt som ersättare (). Men om en platshållare saknas kartläggning eller nyckelord, den ursprungliga platshållaren används som standard och undviker därmed KeyError. Dessutom ger varje förekomst av "$" ett dollartecken.

Mallobjekt har också ett offentligt tillgängligt attribut:

  • Mall är objektet som skickas till konstruktörens mallargument. Medan skrivskyddad åtkomst inte verkställs är det bäst att inte ändra detta attribut i ditt program.

Exempel på skal-sessionen nedan tjänar till att illustrera mallsträngobjekt.

>>> från strängimportmall 

>>> s = Mall ('$ när, $ vem $ åtgärd $ vad.') 

>>> s.substitut (när = "På sommaren, vem =" John ", action =" dricker ", vad =" iste ")" På sommaren dricker John iste. " 

>>> s.substitut (när = 'På natten', vem = 'Jean', action = 'äter', vad = 'popcorn') 'På natten äter Jean popcorn.' 

>>> exempelvis '$ när, $ vem $ åtgärd $ vad.' 

>>> d = dict (när = "på sommaren") 

>>> Mall ('$ vem $ action $ vad $ när'). Safe_substitute (d) '$ vem $ action $ vad på sommaren'