Python bietet mindestens sechs Möglichkeiten zum Formatieren eines Strings:
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'
Eine kurze Geschichte der verschiedenen Methoden:
printf
Formatierung im Stil gibt es seit Pythons Kindheit- Die
Template
Klasse wurde in Python 2.4 eingeführt - Die
format
Methode wurde in Python 2.6 eingeführt f
-strings wurden in Python 3.6 eingeführt
Meine Fragen sind:
- Ist die
printf
Formatierung im Stil veraltet oder wird sie veraltet sein? - In der
Template class
ist diesubstitute
Methode veraltet oder veraltet gehen werden? (Ich spreche nicht darübersafe_substitute
, was meines Wissens einzigartige Fähigkeiten bietet)
Ähnliche Fragen und warum ich denke, dass sie keine Duplikate sind:
Python-String-Formatierung:% vs. .format - behandelt nur die Methoden 1 und 2 und fragt, welche besser ist; Meine Frage bezieht sich ausdrücklich auf die Ablehnung im Lichte des Zen von Python
Zeichenfolgenformatierungsoptionen: Vor- und Nachteile - behandelt nur die Methoden 1a und 1b in der Frage, 1 und 2 in der Antwort und auch nichts über die Ablehnung
Erweiterte Zeichenfolgenformatierung im Vergleich zu Vorlagenzeichenfolgen - hauptsächlich in Bezug auf die Methoden 1 und 3 - und nicht die Ablehnung
String-Formatierungsausdrücke (Python) - In der Antwort wird erwähnt, dass der ursprüngliche '%'-Ansatz veraltet sein soll . Aber was ist der Unterschied zwischen der geplanten Abschreibung , der ausstehenden Abschreibung und der tatsächlichen Abschreibung ? Und die
printf
-style-Methode löst nicht einmal a aus. WirdPendingDeprecationWarning
dies also wirklich veraltet sein? Dieser Beitrag ist auch ziemlich alt, so dass die Informationen möglicherweise veraltet sind.
Formatter
Unterricht vergessen haben ?