Frage

sqlstring = 'INSERT INTO {}'
table = 'Product'
sqlstring.format(table)

führt nicht dazu, dass "in Produkt einfügen", sondern immer noch 'in {}' einfügen ". Warum ist das so?

War es hilfreich?

Lösung

Python 3.2 macht dies richtig:

$ python3.2
Python 3.2.2 (default, Sep  5 2011, 22:09:30) 
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> sqlstring = 'INSERT INTO {}'
>>> table = 'Product'
>>> sqlstring.format(table)
'INSERT INTO Product'
>>> 

Welche Version verwenden Sie?

Zusätzlicher Gedanke:

Saiten sind unveränderlich und modifizieren sich nicht an Ort und Stelle. Vielleicht willst du:

sqlstring = sqlstring.format(table)

Wenn sich Format Strings selbst modifiziert, wäre es für Python-Programmierer ziemlich ärgerlich, da jede Formatkette nur einmal verwendet werden kann. Manchmal möchten wir die Möglichkeit, eine schöne Formatkette zu erstellen und sie hunderte Male zu verwenden - was einfach ist, wenn format() Gibt das Ergebnis zurück, anstatt das Format an Ort zu ändern.

Andere Tipps

format Ändert die Zeichenfolge nicht (er kann nicht, weil Zeichenfolgen unveränderlich sind). Es gibt eine neue Zeichenfolge zurück. Sie müssen das Ergebnis des Anrufs zum Format zuweisen:

result = sqlstring.format(table)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top