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()
возвращает результат вместо изменения формата на месте.