Why is this an issue?

A long parameter list can indicate that a new structure should be created to wrap the numerous parameters or that the function is doing too many things.

Noncompliant code example

With a maximum number of 4 parameters:

def do_something(param1, param2, param3, param4, param5):
	...

Compliant solution

def do_something(param1, param2, param3, param4):
	...

Exceptions

The first argument of non-static methods, i.e. self or cls, is not counted as it is mandatory and it is passed automatically.