当前位置:  开发笔记 > 编程语言 > 正文

以下两行有什么问题

如何解决《以下两行有什么问题》经验,为你挑选了2个好方法。

我正在尝试编写一段python代码,它将编写一段CMake代码...

但是当我进入以下阶段时:

def_desc = "blaa"
s = "    FILE(WRITE ${CONFIG_H} \"/* {0} */\\n\")\n".format(def_desc)

然后python对我大吼:

Traceback (most recent call last):
  File "/home/ferencd/tmp/blaa.py", line 2, in 
    s = "    FILE(WRITE ${CONFIG_H} \"/* {0} */\\n\")\n".format(def_desc)
KeyError: 'CONFIG_H'
[Finished in 0.0s with exit code 1]

我明白,不知何故,解释器认为这{CONFIG_H}应该是指参数列表中的一个参数format......但是不,我真的想把它打印到输出中......就像它一样.

我该如何处理这种情况?



1> Mikhail Gera..:

如果不使用格式变量,则需要转义括号"}".

def_desc = "blaa"
s = "    FILE(WRITE ${{CONFIG_H}} \"/* {0} */\\n\")\n".format(def_desc)



2> m.wasowski..:

你需要使用双括号:

s = "    FILE(WRITE ${{CONFIG_H}} \"/* {0} */\\n\")\n".format(def_desc)

但是,对于像jinja或mako这样的东西使用模板库要容易得多.

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有