How to Comment your Code in Python, Explained with Examples

Comments are used to annotate, describe, or explain code that is complex or difficult to understand. The Python interpreter will intentionally ignore comments when it compiles to bytecode. PEP 8 has a section dealing with comments. They also increase the readablity of code by adding easy and descriptive language for better understanding.

Block and inline comments start with a # , followed by a space before the comment:

    # This is a block comment.
    print('Hello world!') # This is an inline commment.

Python does not include a formal way to write multiline comments. Instead, each line of a comment spanning multiple lines should start with # and a space:

    # This is the first line of a multiline comment.
    # This is the second line.

Alternatively you could use ''' to write a a comment that spans multiple lines to avoid having to use the # . For example:

    '''
    This is a multiline comment, 
    everything inside the three 
    apostrophes will be regarded 
    by Python as a comment and 
    ignored when running a program
    '''

Another type of comment is the docstring , documented in PEP 257 . Docstrings are a specific type of comment that becomes the __doc__ attribute.

For a string literal to be a docstring, it must start and end with triple quotes """ and be the first statement of the module, function, class, or method definition it is documenting:

    class SomeClass():
        """Summary line for SomeClass.

        More elaborate descriptions may require using a
        a multiline docstring.
        """

        def method_a(self):
            """Single line summary of method_a."""
            pass

String literals that start and end with """ that are not docstrings (not the first statement), can be used for multiline strings. They will not become __doc__ attributes. If they are not assigned to a variable, they will not generate bytecode. There is some discussion about using them as multiline comments found here.

Sample Code

    def print_greeting(name): 
        """This function will print a greeting to a friend."""
        
        # prints the greeting with the name 
        print("Howdy, " + str(name) + "!")
    
    print_greeting("John")
    >>> Howdy, John!