Triple-double quote v.s. Double quote

Mingyu picture Mingyu · Jul 14, 2013 · Viewed 51.3k times · Source

What is the preferred way to write Python doc string?

""" or "

In the book Dive Into Python, the author provides the following example:

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

    Returns string."""

In another chapter, the author provides another example:

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

Both syntax work. The only difference to me is that """ allows us to write multi-line doc.

Is there any difference other than that?

Answer

unutbu picture unutbu · Jul 14, 2013

From the PEP8 Style Guide:

  • PEP 257 describes good docstring conventions. Note that most importantly, the """ that ends a multiline docstring should be on a line by itself, e.g.:

    """Return a foobang
    
    Optional plotz says to frobnicate the bizbaz first.
    """
    
  • For one liner docstrings, it's okay to keep the closing """ on the same line.

PEP 257 recommends using triple quotes, even for one-line docstrings:

  • Triple quotes are used even though the string fits on one line. This makes it easy to later expand it.

Note that not even the Python standard library itself follows these recommendations consistently. For example,