import re


def camel_case_to_underscore(name=''):
    """
    Change string from camel case to using underscores.

    According to PEP8, class names should follow camel case convention,
    whereas methods, functions, and variables should use underscores.

    Parameters
    ----------
    name : :class:`str`
        Name to be changed from camel case to using underscores.

    Returns
    -------
    name : :class:`str`
        Name changed from camel case to using underscores.

    """
    name = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', name)
    return re.sub('([a-z0-9])([A-Z])', r'\1_\2', name).lower()