打印变量名的约定是什么?
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'
当在文档字符串中引用变量时,使用 ``
:
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'