Skip to main content
 首页 » 编程设计

python之这是 str.format 上的 Python 3 错误吗

2025年05月04日17mayingbao

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

你用的是什么版本?

额外的想法:

字符串是不可变的,不会就地 self 修改。也许你想要:

sqlstring = sqlstring.format(table) 

如果格式字符串在适当的位置自行修改,这对 Python 程序员来说会很烦人,因为每个格式字符串只能使用一次。有时我们希望有机会构建一个漂亮的格式字符串,然后使用它数百次——如果 format() 返回结果而不是就地修改格式,这很容易。