我在简单的电子邮件python脚本中有关于docstrings的问题。
message = """\
From: %s
To: %s
Subject: %s
%s
""" % (FROM, ", ".join(TO), SUBJECT, TEXT)
我经常在电子邮件脚本中看到这样的文档字符串。我的问题是,docstring在做什么?我认为docstrings仅用于help
命令等。如果这是一个愚蠢的问题,我道歉。
谢谢!
答案 0 :(得分:2)
带有"""..."""
(三引号)的字符串称为多行字符串。多行字符串和文档字符串之间存在区别。后者是前者的一个子集。
有问题的一个被分配给一个变量,所以不是一个文档字符串。文档字符串是您在函数顶部找到的内容,如下所示:
def foo():
"""This is a doc-string"""
pass
打印foo.__doc__
会给你
print(foo.__doc__)
'This is a doc-string'
您应该明白,只有函数中的第一个多行字符串(如果未分配)才会成为函数的文档字符串(前提是没有设置优化开关),其余部分都将被丢弃。
相比之下,
message = """\
From: %s
To: %s
Subject: %s
%s
""" % (FROM, ", ".join(TO), SUBJECT, TEXT)
发生的是一个多行字符串,其中包含一些分配给变量message
的C样式格式参数。
进一步阅读:
答案 1 :(得分:1)
这不是文档字符串,只是普通字符串(str
)。使用三重双引号("""
)或三重单引号('''
),您告诉Python将其用作长字符串。此字符串由\n
分隔。 Docstrings经常使用这种长字符串来简化阅读。
在您的代码中,似乎正在准备电子邮件,使用变量来指定主题,文本,CC等。
希望它有意义。
答案 2 :(得分:0)
这是因为从docs
开始在多行中编写字符串非常有用:
字符串文字可以跨越多行。一种方法是使用 三重报价:""" ..."""或'' ...'''。