Python 3: à l'aide de %s et .format()
J'ai finalement mis de %
à la .format()
mise en forme de chaîne de l'opérateur dans mon 2.x code pour le rendre plus facile de migrer vers 3.x dans l'avenir. C'était un peu surprenant de constater que non seulement les %
-mise en forme du style reste dans Py3, mais il est largement utilisé dans la bibliothèque standard de code. Il semble logique, parce que l'écriture de '(%s)' % variable
est un peu plus court et peut-être plus facile à comprendre que '({})'.format(variable)
. Mais je suis toujours dans le doute. Est-il convenable (pythonic?) à l'utilisation de ces deux approches dans le code?
Merci.
%
mise en forme est légèrement plus rapide. Mais si tu fais beaucoup de chaîne de formatage que c'est important, vous avez probablement d'autres plus importantes préoccupations.
Vous devez vous connecter pour publier un commentaire.
Python 3.2 documentation dit que,
%
finissent par disparaître.http://docs.python.org/3.2/tutorial/inputoutput.html#old-string-formatting
Mais comme @regilero dit, la phrase est passé de 3.3, ce qui pourrait suggérer qu'il n'est pas réellement le cas. Il y a quelques conversations ici qui suggèrent la même chose.
De Python 3.4 le paragraphe 7.1.1 lit:
Voir aussi Python 3.4 4.7.2 printf style de mise en forme de Chaîne.
%
-comme la mise en forme 🙁 Il semble qu'il n'y a pas que de nombreux signes de se débarrasser de%
à tous. De toute façon, s'en tenir à.format()
semble correct 🙂bar = "baz"; print("foo %s" % bar)
, et il travaillait encore en Python 3.4.3 (avec 2.7.3 et 2.6.6)"%s" est maintenant "{}", donc insted de l'ajout de %s le remplacer par {} l'endroit où vous voulez ajouter la variable dans la chaîne.
Sortie ignorer les citations qu'ils sont à des fins d'illustration des raisons
"Cela semble être la nouvelle façon de "Python 3.+"
allez travailler, plutôt que de la '%;, "a l'air sympa", mais "n'a pas l'air pratique.""