Documentation

Software Engineering Principles in Python

Adam Spannbauer

Machine Learning Engineer at Eastman

Documentation in Python

  • Comments
# Square the number x
  • Docstrings
    """Square the number x

    :param x: number to square
    :return: x squared

    >>> square(2)
    4
    """
Software Engineering Principles in Python

Comments

# This is a valid comment
x = 2
y = 3  # This is also a valid comment
# You can't see me unless you look at the source code

# Hi future collaborators!!
Software Engineering Principles in Python

Effective comments

Commenting 'what'

# Define people as 5
people = 5

# Multiply people by 3
people * 3

Commenting 'why'

# There will be 5 people attending the party
people = 5

# We need 3 pieces of pizza per person
people * 3
Software Engineering Principles in Python

Docstrings

def function(x):
    """High level description of function

    Additional details on function
Software Engineering Principles in Python

Docstrings

def function(x):
    """High level description of function

    Additional details on function

    :param x: description of parameter x
    :return: description of return value

Example webpage generated from a docstring in the Flask package.

Software Engineering Principles in Python

Docstrings

def function(x):
    """High level description of function

    Additional details on function

    :param x: description of parameter x
    :return: description of return value

    >>> # Example function usage
    Expected output of example function usage
    """
    # function code
Software Engineering Principles in Python

Example docstring

def square(x):
    """Square the number x

    :param x: number to square
    :return: x squared

    >>> square(2)
    4
    """
    # `x * x` is faster than `x ** 2`
    # reference: https://stackoverflow.com/a/29055266/5731525
    return x * x
Software Engineering Principles in Python

Example docstring output

help(square)
square(x)
    Square the number x

    :param x: number to square
    :return: x squared

    >>> square(2)
    4
Software Engineering Principles in Python

Let's Practice

Software Engineering Principles in Python

Preparing Video For Download...