String-Formatierungsausdrücke (Python)

String-Formatierungsausdrücke:

'This is %d %s example!' % (1, 'nice') 

String-Formatierungsmethodenaufrufe:

 'This is {0} {1} example!'.format(1, 'nice') 

Ich persönlich bevorzuge die Methode Anrufe (zweites Beispiel) für die Lesbarkeit, aber da es neu ist, gibt es eine gewisse Chance, dass die eine oder andere von ihnen im Laufe der Zeit veraltet werden kann. Was ist Ihrer Meinung nach weniger wahrscheinlich zu verwerfen?

3 Solutions collect form web for “String-Formatierungsausdrücke (Python)”

Die ursprüngliche Idee war, allmählich auf str.format () -Ansatz zu wechseln, während sie beide Möglichkeiten erlaubte:

PEP 3101:
Das neue System kollidiert nicht mit einem der Methodennamen der vorhandenen String-Formatierungstechniken, so dass beide Systeme koexistieren können, bis es Zeit ist, das ältere System zu verwerfen.

Die Idee wird noch verfolgt:

Wir sind immer noch ermutigt Menschen, die neue str.format () verwenden. Python Ausgabe 7343

Da der ursprüngliche "%" -Ansatz geplant ist, um irgendwann in der Zukunft abgelehnt und entfernt zu werden, würde ich vorschlagen, einen neuen Code mit str.format () zu schreiben. Obwohl im Moment ist es nur eine Frage der persönlichen Vorliebe. Ich persönlich bevorzuge die wörterbasierte Formatierung, die sowohl von '%' Operator als auch von str.format () Methode unterstützt wird.

Weder; Der erste wird an vielen orten benutzt und der zweite wurde gerade vorgestellt. Also die Frage ist mehr welcher Stil Sie bevorzugen. Ich bevorzuge die dict basierte Formatierung:

 d = { 'count': 1, 'txt': 'nice' } 'This is %(count)d %(txt)s example!' % d 

Es stellt sicher, dass der richtige Parameter an die richtige Stelle geht, erlaubt es, denselben Parameter an mehreren Stellen wiederzuverwenden usw.

Ich dachte, ich habe gelesen, dass der % Operator bereits in 3.1 abgelehnt wird, also würde ich mit der Funktion format() bleiben.

Siehe PEP 3101: Ein neuer Ansatz für die Formatierung von Zeichenfolgen

Python ist die beste Programmiersprache der Welt.