[Python-de] % Formatierung vs mystr.format()

Peter Otten __peter__ at web.de
Mi Sep 4 09:59:59 CEST 2013


Thomas Guettler wrote:

> Hallo,
> 
> die Formatierung mit format() hat sicherlich Vorteile, die alte Methode
> finde ich jedoch einiges kompakter und darum finde ich sie in der Regel
> besser.
> 
> In einer alten Version der Doku steht, das die % Formatierung deprecated
> ist:
> 
> http://docs.python.org/release/3.1.5/library/stdtypes.html#old-string-
formatting-operations
> 
> 
> In einer neuen Version konnte ich diese Stelle nicht mehr finden. Nur
> einen Abschnitt der die Nachteile der % Methode erläutert:
> 
> http://docs.python.org/3/library/stdtypes.html#printf-style-string-
formatting
> 
> Ich gehe davon aus, dass die % Methode *nicht* mehr deprecated ist. Oder
> soll das wirklich abgeschafft werden?

Nein, siehe auch http://bugs.python.org/issue14123
 
> Ich persönlich finde es nicht sinnvoll bei bestehenden Projekten die %
> Formatierung durch die format-Methode zu ersetzen.

D'accord.

> Wie seht ihr das?

Ich verwende die alte Methode immer, wenn ich zu faul bin, die Position von 
"!" und ":" im interactive interpreter zu überprüfen ;) 

Das einzige Problem mit %, das ich sehe, ist die Sonderbehandlung von 
(Nicht-)Tupeln:

>>> for value in 1, "2", (3, "3"):
...      print "value=%r" % value
... 
value=1
value='2'
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
TypeError: not all arguments converted during string formatting




Mehr Informationen über die Mailingliste python-de