Python dispose d'au moins cinq moyens de formatage de chaîne de caractères:
In [1]: world = "Earth"
# method 1a
In [2]: "Hello, %s" % world
Out[2]: 'Hello, Earth'
# method 1b
In [3]: "Hello, %(planet)s" % {"planet": world}
Out[3]: 'Hello, Earth'
# method 2a
In [4]: "Hello, {0}".format(world)
Out[4]: 'Hello, Earth'
# method 2b
In [5]: "Hello, {planet}".format(planet=world)
Out[5]: 'Hello, Earth'
In [6]: from string import Template
# method 3
In [7]: Template("Hello, $planet").substitute(planet=world)
Out[7]: 'Hello, Earth'
Un bref historique des méthodes différentes:
-
printf
-mise en forme de style a été autour depuis des Pythons de l'enfance - L'
Template
classe a été introduit en Python 2.4 - L'
format
méthode a été introduite dans la version 2.6 de Python
Mes questions sont les suivantes:
- Est -
printf
-mise en forme de style obsolète ou va être obsolète? - Dans l'
Template class
, est l'substitute
méthode obsolète ou va être obsolète? (Je ne parle pas de l'safe_substitute
, qui, comme je comprends qu'il offre des capacités uniques)
Des questions similaires, et pourquoi je pense qu'ils ne sont pas des doublons:
Python mise en forme de chaîne: % contre .format - ne traite que les méthodes 1 et 2, et demande lequel est le mieux; ma question est explicitement au sujet de la dépréciation à la lumière de la Zen de Python
Chaîne options de mise en forme: avantages et inconvénients - ne traite que des méthodes 1a et 1b dans la question 1 et 2 dans la réponse, et aussi rien à propos de la dépréciation
avancées de mise en forme de chaîne vs chaînes du modèle - surtout sur les méthodes 1 et 3, et ne tient pas compte de la dépréciation
Chaîne de mise en forme des expressions (Python) - réponse mentionne que l'original '%' est planifiée à être obsolète. Mais quelle est la différence entre planifiée à être obsolète, dans l'attente de la dépréciation et réelle de l' autodérision? Et l'
printf
-style méthode ne soulève pas le mêmePendingDeprecationWarning
, alors est-ce vraiment va être obsolète? Ce post est aussi assez vieux, donc les informations peuvent être obsolètes.