我已经看到了几种用Python编写文档字符串的不同样式,是否有正式的或“同意的”样式?
格式
可以按照其他文章所示的几种格式编写Python文档字符串。但是,未提到默认的Sphinx文档字符串格式,该格式基于reStructuredText(reST)
。你可以在此博客文章中获得有关主要格式的一些信息。
请注意,reST是PEP 287推荐的
以下是文档字符串的主要使用格式。
-Epytext
从历史上看,像Javadoc这样的样式很普遍,因此它被视为Epydoc(具有所谓的Epytext格式)生成文档的基础。
例:
"""
This is a javadoc style.
@param param1: this is a first param
@param param2: this is a second param
@return: this is a description of what is returned
@raise keyError: raises an exception
"""
-reST
如今,可能更流行的格式是Sphinx用于生成文档的reStructuredText(reST)格式。注意:它在JetBrains PyCharm中默认使用(在定义方法后键入三引号并按Enter键)。默认情况下,它也用作Pyment中的输出格式。
例:
"""
This is a reST style.
:param param1: this is a first param
:param param2: this is a second param
:returns: this is a description of what is returned
:raises keyError: raises an exception
"""
Google有自己常用的格式。Sphinx也可以解释它(即使用Napoleon插件)。
例:
"""
This is an example of Google style.
Args:
param1: This is the first param.
param2: This is a second param.
Returns:
This is a description of what is returned.
Raises:
KeyError: Raises an exception.
"""
甚至更多的例子
-Numpydoc
请注意,Numpy建议根据Google格式使用自己的numpydoc,并且Sphinx可以使用。
"""
My numpydoc description of a kind
of very exhautive numpydoc format docstring.
Parameters
----------
first : array_like
the 1st param name `first`
second :
the 2nd param
third : {'value', 'other'}, optional
the 3rd param, by default 'value'
Returns
-------
string
a value in a string
Raises
------
KeyError
when a key error
OtherError
when an other error
"""
转换/生成
可以使用诸如Pyment之类的工具自动为尚未记录的Python项目生成文档字符串,或将现有文档字符串(可以混合多种格式)从一种格式转换为另一种格式。
问题内容: 在Python中是什么意思?下面的代码有什么作用? 例如… 问题答案: 这是一种字符串格式语法(它是从C借用的)。 请参阅“ PyFormat”: Python支持将值格式化为字符串。尽管这可能包含非常复杂的表达式,但最基本的用法是使用占位符将值插入字符串。 编辑: 这是一个非常简单的示例: 该令牌允许我插入(和潜在的格式)的字符串。请注意,令牌被替换为符号后传递给字符串的任何内容。还
主要内容:指定最小输出宽度,指定对齐方式,指定小数精度我们在《 第一个Python程序——在屏幕上输出文本》中讲到过 print() 函数的用法,这只是最简单最初级的形式,print() 还有很多高级的玩法,比如格式化输出,这就是本节要讲解的内容。 熟悉C语言 printf() 函数的读者能够轻而易举学会 Python print() 函数,它们是非常类似的。 print() 函数使用以 开头的转换说明符对各种类型的数据进行格式化输出,具体请看下表。
问题内容: 如何在Go中解析非标准的日期/时间字符串。例如,如果我想将字符串转换为?该功能应该允许您指定格式。 http://play.golang.org/p/v5DbowXt1x 这导致了恐慌。 从逻辑上讲这是有道理的,因为它应该如何知道哪一天和哪一个月。 其他语言具有类似于以下功能: 我在Go文档中找不到这样的功能,我唯一选择正则表达式吗? 问题答案: time.Parse正在寻找一些关键值
我正在构建一个应用程序,它解析JSON模板,然后用新数据替换对象的值。我的问题是在JSON中表示空数据的标准方式是什么? null 这是正确的吗?
问题内容: 我正在开发一个应用程序,在其中执行一些请求以获取对象ID。在它们每个之后,我调用一个方法()将此id作为参数传递(请参见下面的代码)。 可以注意到,我正在将其转换为前缀并将其与前缀连接。但是,我知道我能做到这一点的多种其他方式(或者,例如),并在我的问题的结果:将超过字符串连接更好的可读性,代码约定和效率方面? 谢谢 问题答案: 这很容易成为基于意见的主题,但是我发现格式在大多数情况下
问题内容: 在问这个问题时,我意识到我对原始字符串不了解很多。对于自称是Django培训师的人来说,这很糟糕。 我知道什么是编码,而且我知道自从得到以来,它独自做什么。 但是究竟是什么呢?它产生什么样的字符串? 最重要的是,该怎么办? 最后,有没有可靠的方法可以从Unicode字符串返回到简单的原始字符串? 嗯,顺便说一句,如果你的系统和文本编辑器字符集设置为UTF-8,u’‘实际上有什么作用吗?