Domanda

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

non risulta 'INSERT INTO prodotto', ma ancora 'INSERT INTO {}' perché è così?

È stato utile?

Soluzione

Python 3.2 fa in modo corretto:

$ 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'
>>> 

Quale versione stai usando?

Ulteriori pensiero:

Le stringhe sono immutabili e non fare auto-modifica in-place. Forse si vuole:

sqlstring = sqlstring.format(table)

Se si stringhe di formato auto-modificata in luogo sarebbe abbastanza fastidioso per i programmatori Python, come ogni stringa di formato può essere utilizzato solo una volta. A volte vogliamo la possibilità di costruire una stringa di formato bel quindi utilizzarlo centinaia di volte -. Che è facile se format() restituisce il risultato invece di modificare il formato in-place

Altri suggerimenti

format non modifica la stringa (non è possibile perché le stringhe sono immutabili). Restituisce una nuova stringa. È necessario assegnare il risultato della chiamata al formato:

result = sqlstring.format(table)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top