You are here: Sommaire > Plongez au coeur de Python > Traitement du HTML > Formatage de chaînes à l’aide d’un dictionnaire | << >> | ||||
Plongez au coeur de PythonDe débutant à expert |
Pourquoi avoir appris locals et globals ? Pour apprendre le formatage de chaînes à l'aide d'un dictionnaire. Comme vous vous le rappelez, le formatage de chaînes permet d’insérer facilement des valeurs dans des chaînes. Les valeurs sont énumérées dans un tuple et insérées dans l’ordre dans la chaîne à la place de chaque marqueur de formatage. Bien que ce soit efficace, cela ne donne pas le code le plus simple à lire, surtout quand de multiples valeurs sont insérées. Vous ne pouvez pas simplement lire la chaîne en une fois pour comprendre ce que le résultat va être, vous devez constamment passer de la chaîne au tuple.
Il existe une technique de formatage de chaînes alternative utilisant un dictionnaire au lieu de valeurs stockées dans un tuple.
>>> params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"} >>> "%(pwd)s" % params 'secret' >>> "%(pwd)s is not a good password for %(uid)s" % params 'secret is not a good password for sa' >>> "%(database)s of mind, %(database)s of body" % params 'master of mind, master of body'
Quand utiliser le formatage à l’aide d’un dictionnaire ? Il est un peu exagéré de mettre en place un dictionnaire de clés et de valeurs simplement pour formater une ligne, c’est en fait plus approprié lorsque vous avez déjà un dictionnaire. Comme par exemple locals.
def handle_comment(self, text): self.pieces.append("<!--%(text)s-->" % locals())
def unknown_starttag(self, tag, attrs): strattrs = "".join([' %s="%s"' % (key, value) for key, value in attrs]) self.pieces.append("<%(tag)s%(strattrs)s>" % locals())
Lorsque cette méthode est appelée, attrs
est une liste de tuples clé/valeur, comme les items (éléments) d’un
dictionnaire, ce qui signifie que nous pouvons utiliser
l’assignement
multiple pour la parcourir. Cela devrait être un motif
familier maintenant, mais il se passe beaucoup de choses ici,
détaillons-les :
|
|
Maintenant, en utilisant le formatage à l’aide d’un dictionnaire, nous insérons la valeur de tag et de strattrs dans une chaîne. Donc si tag vaut 'a', le résultat final sera '<a href="index.html" title="Go to home page">' et c’est ce qui sera ajouté à self.pieces. |
L’utilisation du formatage de chaîne à l’aide d’un dictionnaire avec locals est une manière pratique de rendre des expressions de formatage complexes plus lisibles, mais elle a un prix. Il y a une petite baisse de performance due à l’appel de locals, puisque locals effectue une copie de l’espace de noms local. |
<< locals et globals |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
Mettre les valeurs d’attributs entre guillemets >> |