String literal with triple quotes in function definitions

Estarius picture Estarius · May 31, 2012 · Viewed 82.8k times · Source

I am following the Python tutorial and at some point they talk about how the 1st statement of a function can be a String Literal. As far as the example goes, this String Literal seems to be done with three "s, giving in the example

"""Print a Fibonacci series up to n."""

According to this documentation, this would be used mainly to create some kind of automatically produced documentation.

So I am wondering if someone here could explain to me what are these string literals exactly?

Answer

mgilson picture mgilson · May 31, 2012

What you're talking about (I think) are called docstrings (Thanks Boud for the link).

def foo():
    """This function does absolutely nothing"""

Now, if you type help(foo) from the interpreter, you'll get to see the string that I put in the function. You can also access that string by foo.__doc__

Of course, string literals are just that -- literal strings.

a = "This is a string literal"  #the string on the right side is a string literal, "a" is a string variable.

or

foo("I'm passing this string literal to a function")

They can be defined in a bunch of ways:

'single quotes'
"double quotes"
""" triple-double quotes """  #This can contain line breaks!

or even

#This can contain line breaks too!  See?
''' triple-single 
    quotes '''