Python变量赋值不起作用

时间:2013-08-05 14:18:52

标签: python

>>> header = 'subject'
>>> msg = email.message_from_string(raw_email)   
>>> msg[header] = 'Test123'
>>> print msg[header]
=?UTF-8?B?UmU6IFtHQlMgU3lzdGVtYWRtaW5pc3RyYXRpb25dICMxMjogRS1NYWk=?=
 =?UTF-8?B?bCBCZW5hY2hyaWNodHVuZyBmw7xyIG5ldWUgVGlja2V0cyBlaW5yaWNodGVu?=

为什么msg[header]不包含'Test123'

2 个答案:

答案 0 :(得分:2)

http://docs.python.org/2/library/email.message.html#email.message.Message.setitem

“请注意,这不会覆盖或删除任何具有相同名称的现有标头。如果要确保新标头是包含字段名称的消息中唯一存在的标头,请先删除该字段”

答案 1 :(得分:2)

根据文件:

  

__ setitem __(name,val)

     

使用字段名称和值val为消息添加标头。该字段将附加到邮件现有字段的末尾。

     

请注意,这不会覆盖或删除任何具有相同名称的现有标头。如果要确保新标题是具有字段名称的消息中唯一存在的标题,请首先删除该字段,例如:

del msg['subject']
msg['subject'] = 'Python roolz!'

http://docs.python.org/2/library/email.message.html#email.message.Message