Вопрос

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

Разве не приводит к «вставке в продукт», но все же «вставьте в {}», почему это так?

Это было полезно?

Решение

Python 3.2 делает это правильно:

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

Какую версию ты используешь?

Дополнительная мысль:

Строки неизменны и не самомодируют на месте. Может ты хочешь:

sqlstring = sqlstring.format(table)

Если форматы строки самостоятельно наполнены, это было бы довольно раздражающим для программистов Python, так как каждая строка формата может использоваться только один раз. Иногда мы хотим возможность создать хорошую строку формата, а затем используйте ее сотни раз - что легко, если format() Возвращает результат вместо изменения формата на месте.

Другие советы

format не изменяет строку (она не может, потому что строки неизменны). Возвращает новую строку. Вам необходимо назначить результат вызова формату:

result = sqlstring.format(table)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top