繁体   English   中英

Python中的变量替换

[英]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.formatFormat String Syntax的文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM