Python ha almeno sei modi per formattare una stringa:
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'
Breve storia dei diversi metodi:
printf
la formattazione in stile esiste dall'infanzia di Pythons- La
Template
classe è stata introdotta in Python 2.4 - Il
format
metodo è stato introdotto in Python 2.6 f
-strings sono state introdotte in Python 3.6
Le mie domande sono:
- La
printf
formattazione in stile è deprecata o sarà deprecata? - In
Template class
, ilsubstitute
metodo è deprecato o sarà deprecato? (Non sto parlandosafe_substitute
, che a quanto ho capito offre funzionalità uniche)
Domande simili e perché penso che non siano duplicati:
Formattazione della stringa Python:% vs. .format - tratta solo i metodi 1 e 2 e chiede quale sia il migliore; la mia domanda riguarda esplicitamente la deprecazione alla luce dello Zen di Python
Opzioni di formattazione delle stringhe: pro e contro : tratta solo i metodi 1a e 1b nella domanda, 1 e 2 nella risposta e anche nulla sulla deprecazione
formattazione avanzata delle stringhe rispetto alle stringhe dei modelli , principalmente sui metodi 1 e 3 e non affronta la deprecazione
Espressioni di formattazione delle stringhe (Python) : la risposta menziona che l'approccio '%' originale è pianificato per essere deprecato . Ma qual è la differenza tra deprecazione pianificata , deprecazione in sospeso e deprecazione effettiva ? E il
printf
metodo -style non solleva nemmeno unPendingDeprecationWarning
, quindi sarà davvero deprecato? Anche questo post è piuttosto vecchio, quindi le informazioni potrebbero non essere aggiornate.
Formatter
lezione?