Maison  >  Article  >  développement back-end  >  Introduction à l'utilisation de Template en python

Introduction à l'utilisation de Template en python

PHPz
PHPzoriginal
2017-04-21 14:54:152742parcourir

Le modèle est sans aucun doute une bonne chose, il peut corriger le format de la chaîne et la réutiliser. Dans le même temps, Template permet également aux développeurs de considérer le format et le contenu de la chaîne séparément, ce qui réduit pratiquement la pression sur les développeurs.

Template appartient à une classe en chaîne, donc si vous souhaitez l'utiliser, vous pouvez l'appeler de la manière suivante

from string import Template

Template a un identifiant spécial $, qui a le suivant règles :

Sa principale méthode d'implémentation est $xxx, où xxx est une chaîne qui répond aux règles de dénomination de Python, c'est-à-dire qu'elle ne peut pas commencer par un nombre, ne peut pas être un mot-clé, etc.

Si $xxx doit être en contact avec d'autres chaînes, vous pouvez envelopper xxx avec {} (il semble utiliser '()' dans le passé, un de mes ouvrages de référence l'a dit, mais la version actuelle ne devrait utiliser que '{} '). Par exemple, il existe deux méthodes importantes dans aaa${xxx}aaa

Template : substitut et safe_substitute.

Les deux méthodes peuvent renvoyer des chaînes en obtenant des paramètres

>>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

Vous pouvez également transmettre des données directement en récupérant le dictionnaire, comme ceci

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

La différence entre eux réside dans la manière dont ils gèrent les paramètres manquants.

Template est implémenté en initialisant d'abord une chaîne via Template. Ces chaînes contiennent des clés une par une. En appelant substitut ou safe_subsititute, la valeur de la clé correspond aux paramètres passés dans la méthode, important ainsi la chaîne à l'emplacement spécifié. Un avantage de cette méthode est qu'il n'est pas nécessaire d'imprimer '%s' ou autre. L'ordre de chaque paramètre doit être fixe. Tant que la clé est correcte, la valeur peut être insérée correctement. De cette façon, vous pouvez pousser un soupir de soulagement lorsque vous insérez beaucoup de données. Mais même s'il existe une méthode aussi paresseuse, il n'y a toujours aucune garantie qu'il n'y aura pas d'erreurs. Et si une clé de moins est saisie ?

le remplacement est une méthode sérieuse. Si une clé n'est pas saisie, une erreur sera certainement signalée. Même si ce sera moche, le problème peut être trouvé.

safe_substitute ne signalera pas d'erreur, mais saisira $xxx directement dans la chaîne de résultat, comme

there apple and $b

L'avantage est que le programme est toujours correct, et vous ne le faites pas. Je dois faire des erreurs une par une. Cela m'a rendu malheureux.

Le modèle peut être hérité et ses sous-classes peuvent effectuer certaines opérations de « personnalisation »...

Le caractère $ peut être remplacé par d'autres caractères, tels que "#", en modifiant le délimiteur Cependant, le nouvel identifiant doit être conforme aux spécifications des expressions régulières.

Vous pouvez modifier les règles de dénomination des touches en modifiant le modèle d'identification. Par exemple, il est stipulé que le premier caractère doit commencer par un, ce qui est très bien pour normaliser la dénomination. Bien entendu, cela passe également par une représentation régulière.

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()

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn