这是str.format上的python 3错误吗?
-
26-10-2019 - |
题
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)
不隶属于 StackOverflow