python中的“”是什么?

时间:2012-09-01 12:01:07

标签: python

我的代码:

 """
 def
 """
 k="""
 abc
 """
 print(k)
 print('abc2')

我尝试运行它:

  sam@sam-M51Kr:~/code/python$ python test.py 

  abc

  abc2
  sam@sam-M51Kr:~/code/python$

在代码的开头,似乎“”成为评论。

但为什么k是'abc'的两个空行?

谢谢〜

4 个答案:

答案 0 :(得分:6)

“”“是一个字符串分隔符。

来自PEP 257

  

docstring是一个字符串文字,作为模块,函数,类或方法定义中的第一个语句出现。这样的文档字符串成为该对象的__doc__特殊属性。

因此,您在方法之后的字符串是注释,其他工具可以使用它来记录您的代码。如果你在其他地方使用未分配的字符串文字,它只是一个注释,以帮助那些阅读代码(除了在上一个链接中提到的几个案例)

来自python reference

  

在三引号字符串中,允许(并保留)未转义的换行符和引号,除了连续三个未转义的引号终止字符串。 (“引号”是用于打开字符串的字符,即“或”。)

因此包括回车/换行。

答案 1 :(得分:1)

问:“但为什么k是'abc'的两个空行?”

k="""
 abc
 """

"""(也是''')是一个多行字符串分隔符, 保留 换行符,所以在初始"""之后有一个换行符,在abc之后有换行符,这就是为什么你得到空行。

使用repr()您可以明确地看到这一点:

repr(k)
"'\\n abc\\n '"

"""用于以docstring(或this)的形式编写长,多行,字符串或文档辅助工具,正如您所正确指出的那样。< / p>

答案 2 :(得分:1)

""" ... """只是一个多行字符串。所以

"""
abc
"""

是换行符,然后是abc,然后是另一个换行符。

答案 3 :(得分:1)

任何对象的第一个未分配字符串,在本例中是一个模块,称为“docstring”。它会自动分配到定义范围内的特殊变量__doc__

另一个是多行字符串。这些是“原样”字符串,用于保留嵌入的换行符。因此,指定k的第一行在字符串的开头和结尾处有换行符。您通常不会在终端中看到它。