Define functions with too many arguments to abide by PEP8 standard

Sudip Kafle picture Sudip Kafle · Jul 28, 2014 · Viewed 47.3k times · Source

I have defined a function with a long list of arguments. The total characters in definition is above 80 and doesn't abide by PEP8.

def my_function(argument_one, argument_two, argument_three, argument_four, argument_five):

What can be the best approach to avoid horizontal scrolling?

Answer

BrenBarn picture BrenBarn · Jul 28, 2014

An example is given in PEP 8:

class Rectangle(Blob):

    def __init__(self, width, height,
                 color='black', emphasis=None, highlight=0):

So that is the official answer. Personally I detest this approach, in which continuation lines have leading whitespace that doesn't correspond to any real indentation level. My approach would be:

class Rectangle(Blob):

    def __init__(
        self, width, height,
        color='black', emphasis=None, highlight=0
    ):

. . . or just let the line run over 80 characters.