Question

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

ne résulte pas 'INSERT INTO produit' mais 'INSERT INTO {}' pourquoi est-ce donc?

Était-ce utile?

La solution

Python 3.2 travaille correctement:

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

Quelle version utilisez-vous?

pensée supplémentaire:

Les chaînes sont immuables et ne pas auto-modify en place. Peut-être que vous voulez:

sqlstring = sqlstring.format(table)

Si les chaînes de format se auto-modifié en place, il serait assez gênant pour les programmeurs Python, chaque chaîne de format ne peut être utilisé qu'une seule fois. Parfois, nous voulons la chance de construire une chaîne de format agréable puis utiliser des centaines de fois -. Ce qui est facile si format() renvoie le résultat au lieu de modifier le format en place

Autres conseils

format ne modifie pas la chaîne (il ne peut pas parce que les chaînes sont immuables). Il renvoie une nouvelle chaîne. Vous devez affecter le résultat de l'appel au format:

result = sqlstring.format(table)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top