繁体   English   中英

三重双引号与双引号

[英]Triple-double quote v.s. Double quote

编写 Python 文档字符串的首选方法是什么?

""""

Dive Into Python一书中,作者提供了以下示例:

def buildConnectionString(params):
    """Build a connection string from a dictionary of parameters.

    Returns string."""

在另一中,作者提供了另一个例子:

def stripnulls(data):
    "strip whitespace and nulls"
    return data.replace("\00", "").strip()

两种语法都有效。 对我来说唯一的区别是"""允许我们编写多行文档。

除此之外还有什么区别吗?

来自PEP8 风格指南

  • PEP 257描述了良好的文档字符串约定。 请注意,最重要的是,结束多行文档字符串的 """ 应该单独在一行上,例如:

     """Return a foobang Optional plotz says to frobnicate the bizbaz first. """
  • 对于单行文档字符串,可以将结束的 """ 保留在同一行上。

PEP 257建议使用三重引号,即使是单行文档字符串:

  • 即使字符串适合一行,也会使用三重引号。 这使得以后扩展它变得容易。

请注意,即使是 Python 标准库本身也没有始终遵循这些建议。 例如,

它们都是字符串,所以没有区别。 首选样式是三重双引号 ( PEP 257 ):

为了保持一致性,始终在文档字符串周围使用"""triple double quotes"""

如果您在文档字符串中使用任何反斜杠,请使用r"""raw triple double quotes""" 对于 Unicode 文档字符串,请使用u"""Unicode triple-quoted strings"""

不,不是真的。 如果您正在写入文件,使用三重引号可能是理想的,因为您不必使用 "\\n" 来向下一行。 只要确保您开始和结束的引号类型相同(双引号或三引号)。 如果您还有其他问题,这里是一个可靠的资源:

http://docs.python.org/release/1.5.1p1/tut/strings.html

您还可以对长 SQL 查询使用三重双引号来提高可读性,而不是向右滚动以查看它,如下所示:

query = """
        SELECT count(*) 
        FROM (SELECT * 
              FROM student  
              WHERE grade = 2 AND major = 'Computer Science' 
              FOR UPDATE) 
        AS result;
        """

而且,如果对上面的 SQL 查询使用双引号可读性会更差,您需要向右滚动才能看到它,如下所示:

query = "SELECT count(*) FROM (SELECT * FROM student WHERE grade = 2 AND major = 'Computer Science' FOR UPDATE) AS result;"

此外,您还可以对GraphQL 查询使用三重双引号,如下所示:

query = """
        {
            products(first: 5) {
                edges {
                    node {
                    id
                    handle
                    }
                }
            }
        }"""

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM