Eva*_*Lee 0 python smtp indentation
我是python的新手.我发现我的python代码返回不合理地返回选项卡错误:
msgs ['to'] ="xxx@gmail.com"
^ TabError:缩进中标签和空格的使用不一致
这是我的代码的一部分:
def send_email(self):
try:
msgs = MIMEMultipart()
msgs['to'] = "xxx"
msgs['from'] = "xxx"
msgs['subject'] = "abc"
msgs.attach(MIMEText(file("~/att1.py").read())
msgs.attach(MIMEText(file("~/att2.docx").read())
server = smtplib.SMTP()
server.connect('smtp.gmail.com:587')
server.login('xxx','xxx')
server.sendmail(msgs['from'], msgs['to'],msgs.as_string())
server.quit()
print "Successfully sent email"
return True
except SMTPException:
print "Error: unable to send email"
print str(SMTPException)
return False
Run Code Online (Sandbox Code Playgroud)
您的代码确实使用制表符空格不一致.将原始帖子复制到Sublime Text 3,然后选择所有行时,我可以看到两个制表符(行)和空格(点):
请注意,我将标签设置为扩展到8个空格,这也是Python所做的.请注意msgs[..]线条现在不再排队了.在Python 3中混合制表符和空格以缩进也是一种语法错误.
将文本编辑器配置为在使用TAB键时插入空格.这是Python代码的推荐配置,因为选项卡宽度取决于编辑器配置,而空格总是相同的宽度.这就是Python样式指南(PEP 8)推荐的内容:
标签或空格?
切勿混合标签和空格.
缩进Python最流行的方法是仅使用空格.第二种最流行的方式是仅使用标签.使用制表符和空格混合缩进的代码应转换为仅使用空格.当使用-t选项调用Python命令行解释器时,它会发出有关非法混合制表符和空格的代码的警告.使用-tt时,这些警告会出错.强烈推荐这些选项!
对于新项目,强烈建议仅使用空格.大多数编辑都具有使这很容易做到的功能.
| 归档时间: |
|
| 查看次数: |
14943 次 |
| 最近记录: |