打印变量名的约定是什么?

What is the convention for printing variable names?

当在文档字符串中引用变量时,使用 ``

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...")

视情况而定。我喜欢使用单反引号甚至单引号:

"parameter `var` has to be [...]"
"parameter 'var' has to be [...]"

我认为双反引号会影响可读性。顺便说一句,您 没有 使用双反引号来引用文档字符串中的变量。我知道 Sphinx 和大多数 IDE / 代码分析工具需要双反引号,但你也可以坚持使用引号(除非你有数百个对象并且必须使用 autodoc)。

让我们在解释器中生成一些异常:

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'