Python 文档字符串:raise 与 raises
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/34160968/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Python Docstring: raise vs. raises
提问by Bob Dylan
I use the PyCharm IDE which assists with crafting PEP0257-compliant docstrings. It provides two attributes I don't entirely understand the distinction/use between:
我使用 PyCharm IDE,它有助于制作符合 PEP0257 的文档字符串。它提供了两个我不完全理解之间的区别/用途的属性:
:raise Exception: exception explanation here
:raises Exception: exception explanation here
:raise Exception: exception explanation here
:raises Exception: exception explanation here
When would I use raise
as opposes to raises
in my docstring? Specifically, if a class required an argument that was not provided and raises a TypeError
, which should be used to document that?
我什么时候会在我的文档字符串中使用raise
as 反对raises
?具体来说,如果一个类需要一个未提供的参数并引发 a TypeError
,应该使用哪个来记录?
采纳答案by erik-e
TL;DR
TL; 博士
raises
is used to describe the possible exceptions being raised. raise
is recognized by Sphinxwhen running autodoc and is the same as raises
.
raises
用于描述可能引发的异常。在运行 autodoc 时raise
被Sphinx识别,并且与raises
.
Full Explanation
完整说明
PyCharm helps in using a few different styles of docstring comments.
PyCharm 有助于使用几种不同风格的文档字符串注释。
Three which I often use are:
我经常使用的三个是:
- NumPy Format
- Google Format
- Sphinx(much more than a format)
In all of these there is a special section for Raises
which you can see in an older version of the PyCharm code tests:
在所有这些中Raises
,您可以在旧版本的 PyCharm 代码测试中看到一个特殊部分:
The implementation for SphinxDocString
we can see herethere there are numerous keywords which can be recognized. Those tags then link to the list of RAISES_TAGS
which can be found here.
SphinxDocString
我们可以看到这里的实现有很多可以识别的关键字。然后这些标签链接到RAISES_TAGS
可在此处找到的列表。
I hope this information is useful.
我希望这些信息有用。
回答by eduardosufan
You must use raises
to describe exceptions raised by your method/class.
您必须使用raises
来描述您的方法/类引发的异常。
:raises:
Exception: Explanation here.
For example, for a ValueError exception:
例如,对于 ValueError 异常:
:raises:
ValueError: if fft_data is empty.
回答by Erfan226
This works for me in latest version of PyCharm for anyone interested.
对于任何感兴趣的人,这对我来说适用于最新版本的 PyCharm。
"""
Some explanations.
:raises WhatEverError: if there is any error
"""