Pregunta

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

¿No da como resultado 'insertar en el producto' pero aún así 'insertar en {}' por qué es así?

¿Fue útil?

Solución

Python 3.2 hace esto correctamente:

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

Qué versión estás usando?

Pensamiento adicional:

Las cadenas son inmutables y no se automodifican en el lugar. Quizás quieras:

sqlstring = sqlstring.format(table)

Si las cadenas de formato se automodifican en su lugar, sería bastante molesto para los programadores de Python, ya que cada cadena de formato solo podría usarse una vez. A veces queremos la oportunidad de construir una buena cadena de formato y luego úsela cientos de veces, lo cual es fácil si format() Devuelve el resultado en lugar de modificar el formato en el lugar.

Otros consejos

format no modifica la cadena (no puede porque las cadenas son inmutables). Devuelve una nueva cadena. Debe asignar el resultado de la llamada al formato:

result = sqlstring.format(table)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top