[英]Is this a Python 3 bug on str.format?
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
不會修改字符串(因為字符串是不可變的,所以不能修改)。 它返回一個新字符串。 您需要將調用結果分配給format:
result = sqlstring.format(table)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.