这个Python代码中的文档字符串有什么用处?

问题描述:

我对简单电子邮件python脚本中的docstrings有个疑问。这个Python代码中的文档字符串有什么用处?

message = """\ 
From: %s 
To: %s 
Subject: %s 

%s 
""" % (FROM, ", ".join(TO), SUBJECT, TEXT) 

我在电子邮件脚本中经常看到像这样的文档。我的问题是,文档串是干什么的?我以为docstrings只用于help等命令。如果这是一个愚蠢的问题,我很抱歉。

谢谢!

+1

它只是一个包含换行符的字符串文字。 –

+0

如果您的问题得到解答,您可以[标记答案](https:// *。com/help/someone-answers)接受。 –

这是因为它是有用的写在多行字符串,从docs

字符串文本可以跨越多行。一种方法是使用 三重引号:“”“...”“”或'''...'''。

带有"""..."""(三引号)的字符串称为多行字符串。多行字符串和文档字符串之间有区别。后者是前者的一个子集。

正在讨论的问题正在分配给一个变量,所以它是而不是的一个文档字符串。文档字符串你会发现什么在函数的顶部,这样的:

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

其实docstrings不是多行字符串的“子集” - 文档字符串不必被引用三倍。 –

这不是一个文档字符串,而只是一个普通的字符串(str)。使用三重双引号(""")或三重单引号('''),您告诉Python将其用作长字符串。该字符串由\n分隔。 Docstrings经常使用这种长字符串来缓解阅读。

在你的代码,好像它准备电子邮件,使用变量指定主体,文本,CC等

希望这是有道理的。