[英]Variable Substitution in Python
所以我正在使用Web.py,我有以下代码:
check = db.select('querycode', where='id=$id', vars=locals())[0]
哪个工作正常,它用变量替换$ id。 但是在这一行中它不起作用:
web.sendmail('mail@mail.mail', "tomail@tomail.tomail", 'Subject', 'Hello $name')
我有什么不对,怎么可能有用呢。 我也得到了正确的概念:$ -sign代替变量?
@ merlin2011的答案解释得最好。
但只是为了补充它,因为你试图用变量名替换,python还支持以下形式的“替换”(或字符串格式化):
'Hello %(name)s' % locals()
或者限制命名空间:
'Hello %(name)s' % {'name': name}
编辑自python 3.6以来,变量替换是使用f-strings本地完成的。 例如,
print( f'Hello {name}' )
Python一般不做PHP风格的变量插值。
您在第一个语句中看到的是db.select
一个特殊功能,它在调用者的上下文中从局部变量中选择变量值。
如果要替换第二行中的变量,则必须使用Python提供的方法之一手动执行此操作。 这是一种这样的方式。
web.sendmail('mail@mail.mail', "tomail@tomail.tomail", 'Subject', 'Hello %s' % name)
这是另一种方式。
web.sendmail('mail@mail.mail', "tomail@tomail.tomail", 'Subject', 'Hello {0}'.format(name))
第一个选项记录在字符串格式化操作中 。
有关第二个选项的更多详细信息,请参阅str.format
和Format String Syntax的文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.