虽然说Python现在有f开头的字符串用来格式化了,但是出于习惯,以及在部分场景下,比如需要混合使用原始字符串(raw string)的时候,感觉还是format函数好用。
这次写的时候遇到了奇怪的KeyError。我一开始是这么写的:
s = r'''
function foo() {
printf("{}");
}
'''.format(arg)
但是这样会报错。
后来发现,因为format自己用大括号作为占位符,如果字符串里本身有大括号,还得转义一下。具体怎么转义,就是用两个大括号,所以应该改成这样:
s = r'''
function foo() {{
printf("{}");
}}
'''.format(arg)
这样才能正常输出。