簡體   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