pythonstringliterals

String literal with triple quotes in function definitions (what is a docstring?)


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?


Solution

  • What you're talking about are called docstrings.

    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 '''
    

    But for docstrings, triple-double quotes are recommended, at least by PEP 257.