有没有办法在Python中多次格式化一个字符串?

Is there a way to format one string multiple times in Python?

我有这样的字符串:

my_string = '{general_setting} ... {specific_setting}'

general_setting 在整个程序中是相同的(即数据库密码),而 specific_setting 可以在整个程序中变化。有没有办法两次格式化一个字符串,首先插入 general_setting 然后有一个预先准备好的字符串稍后插入 specific_setting?

我敢肯定之前肯定有人问过这个问题,但我能找到的只是关于如何多次插入相同的 VALUE 的问题,而不是关于如何在不同时间插入不同值的问题。

根据大括号的数量,您可以使用任何级别的格式

>>> template = '{general_setting} ... {{specific_setting}}'.format(general_setting='general')
>>> my_string = template.format(specific_setting='specific')
>>> print (my_string)
general ... specific

或者,您可以使用 python format string unused named arguments 中提出的解决方案:

class SafeDict(dict):
    def __missing__(self, key):
        return '{' + key + '}'

然后:

>>> '{bond}, {james} {bond}'.format_map(SafeDict(bond='bond'))

returns:

'bond, {james} bond'

对@Sunitha回答的一些补充,第一次格式化是{},第二次是{{}},第三次不是{{{}}},而是{{{{}}}}.

四个花括号,因为每次格式化,每处花括号都会减少