sqlstring = 'INSERT INTO {}'
table = 'Product'
sqlstring.format(table)
不会导致 'INSERT INTO Product' 但仍然是 'INSERT INTO {}' 为什么会这样?
sqlstring = 'INSERT INTO {}'
table = 'Product'
sqlstring.format(table)
不会导致 'INSERT INTO Product' 但仍然是 'INSERT INTO {}' 为什么会这样?
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)