所以我正在使用Web.py,我有以下代码:

check = db.select('querycode', where='id=$id', vars=locals())[0]

效果很好,它将$ id替换为变量。但是在这一行中它不起作用:
web.sendmail('[email protected]', "[email protected]", 'Subject', 'Hello $name')

我有什么错,怎么办?我是否也正确理解了这个概念:用$符号代替变量?

最佳答案

Python通常不执行PHP样式的变量插值。

您在第一条语句中看到的是db.select的特殊功能,它在调用者的上下文中从局部变量中选择变量值。

如果要在第二行中替换变量,则必须使用Python提供的一种方法手动进行操作。这是一种这样的方式。

web.sendmail('[email protected]', "[email protected]", 'Subject', 'Hello %s' % name)

这是另一种方式。
web.sendmail('[email protected]', "[email protected]", 'Subject', 'Hello {0}'.format(name))

第一个选项记录在String Formatting operations中。

有关第二个选项的更多详细信息,请参见 str.format Format String Syntax的文档。

10-08 02:58