3

我只是 python 的新手。
正如我在python中所知道的那样,多行注释是这样的

"""
this is a comments
"""

但考虑这段代码

somevariable="""this is a variable"""
print somevariable

它打印出这是一个变量
,python 中的注释和字符串是相同的还是不同的?

4

8 回答 8

5

第一个不是评论,它是一个字符串。但是由于您没有对该字符串任何事情(打印它,将其分配给变量等),所有解释器都会说“是的,这是一个字符串!” 并完全忽略它。有效地使其与注释相同,因为它是解释器忽略的任意文本。

于 2013-06-21T11:36:53.433 回答
4

Python 中没有多行注释。它们都只是字符串。前者通常用作文档字符串,并将与函数/类/模块相关联,而另一个被分配给变量。

于 2013-06-21T11:26:41.337 回答
2

python中的注释和字符串是一样的吗?

严格来说,它们并不相同。但是在您的问题中,您所说的“评论”实际上是一个字符串。注释是字符之后出现在同一行中的所有内容#

一个.py:

"""
comment1
"""
# comment2

现在:

% strings a.pyc | grep comment
comment1

如您所见,comment2is 不是编译字节码的一部分,而comment1is -- 因为它不是注释,它是一个字符串。

正如其他人指出的那样,字符串被认为是docstring. docstrings 通常用于记录您的代码,而注释则用于注释,并且不包含在文档中。

于 2013-06-21T11:48:46.010 回答
2

是的,它们是一样的

它被称为文档字符串您可以在此处找到有关此类字符串的更多信息:http: //www.pythonforbeginners.com/basics/python-docstrings/

于 2013-06-21T11:27:12.863 回答
1

是的,它们是一样的。包含注释字符串作为函数或类的第一条语句是一种惯例。

请参阅PEP 257 - 文档字符串约定

于 2013-06-21T11:26:51.213 回答
1

混乱来自文档字符串。

这实际上不是注释,而是一种制作多行字符串的方法:

>>> """This is a string
... with line breaks"""
'This is a string\nwith line breaks'

在类和函数中使用相同的符号来记录它们:

>>> def my_function():
...     """This function does stupid things."""
...     return 1/0
...
>>> my_function.__doc__
'This function does stupid things.'
>>> my_function()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 3, in my_function
ZeroDivisionError: division by zero

所以你的代码:

somevariable = """this is a variable"""

真的只是等于:

somevariable = "this is a variable"
于 2013-06-21T11:51:59.347 回答
1

第一个片段不是评论。它是一个字符串。Python 中的注释以#字符为前缀。

于 2013-06-21T11:27:42.763 回答
1
>>> somevariable="""
... this is not a comment
... """
>>> print(somevariable)

this is not a comment
于 2013-06-21T11:47:09.880 回答