Python a au moins six façons de formater une chaîne:
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'
# method 2c
In [6]: f"Hello, {world}"
Out[6]: 'Hello, Earth'
In [7]: from string import Template
# method 3
In [8]: Template("Hello, $planet").substitute(planet=world)
Out[8]: 'Hello, Earth'
Un bref historique des différentes méthodes:
printf
-le formatage de style existe depuis l'enfance des Pythons- La
Template
classe a été introduite dans Python 2.4 - La
format
méthode a été introduite dans Python 2.6 f
-strings ont été introduits dans Python 3.6
Mes questions sont:
- La
printf
mise en forme -style est-elle obsolète ou va-t-elle l'être? - Dans le
Template class
, lasubstitute
méthode est-elle obsolète ou va-t-elle l'être? (Je ne parle pas desafe_substitute
, qui, d'après ce que je comprends, offre des capacités uniques)
Questions similaires et pourquoi je pense qu'il ne s'agit pas de doublons:
Formatage de chaîne Python:% vs .format - traite uniquement les méthodes 1 et 2 et demande laquelle est la meilleure; ma question porte explicitement sur la dépréciation à la lumière du Zen de Python
Options de formatage de chaîne: avantages et inconvénients - traite uniquement les méthodes 1a et 1b dans la question, 1 et 2 dans la réponse, et rien sur la dépréciation
mise en forme de chaîne avancée vs chaînes de modèle - principalement sur les méthodes 1 et 3, et ne résout pas la dépréciation
Expressions de mise en forme de chaîne (Python) - la réponse mentionne que l'approche originale '%' devrait être obsolète . Mais quelle est la différence entre la dépréciation prévue , la dépréciation en attente et la dépréciation réelle ? Et la
printf
méthode -style ne lève même pas aPendingDeprecationWarning
, est-ce que cela va vraiment être obsolète? Ce message est également assez ancien, donc les informations peuvent être obsolètes.
Formatter
cours?