当在纪录字符串中引用变量时,使用``
:
def func(var):
"""
Parameter ``var`` is referred in a documetation string.
"""
打印变量名称的惯例是什么?(或使用字符串显示给用户,例如异常消息)是否相同:
def func(var):
if not check1(var):
raise Exception("parameter ``var`` has to be...")
if not check2(var):
logger.warn("parameter ``var`` is...")
答案 0 :(得分:3)
让我们在解释器中生成一些例外:
Python 3.5.2 (default, Sep 14 2017, 22:51:06)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> sdf
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'sdf' is not defined
>>> mystr = 'sdf'
>>> mystr.foo
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'foo'
正如我们所看到的,异常消息的常见做法似乎是单引号,如'name'
中所示:
NameError: name 'sdf' is not defined
AttributeError: 'str' object has no attribute 'foo'
OP(@Itay)更好的例子:
>>> def a(d):
... pass
...
>>> a()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: a() missing 1 required positional argument: 'd'
答案 1 :(得分:0)
这取决于。我喜欢使用单个反引号甚至是单引号:
"parameter `var` has to be [...]"
"parameter 'var' has to be [...]"
在我看来,双重反引号会损害可读性。顺便说一句,你没有 使用双反引号来引用文档字符串中的变量。我知道Sphinx和大多数IDE /代码分析工具需要双重反引号,但你也可以坚持引用(除非你有数百个对象并且必须使用autodoc)。