Reports discrepancies between declared parameters and actual arguments, as well as incorrect arguments, for example, duplicate named arguments, and incorrect argument order.
Example:
class Foo: def __call__(self, p1: int, *, p2: str = "%"): return p2 * p1 bar = Foo() bar.__call__() # unfilled parameter bar(5, "#") # unexpected argument
The correct code fragment looks at follows:
class Foo: def __call__(self, p1: int, *, p2: str = "%"): return p2 * p1 bar = Foo() bar.__call__(5) bar(5, p2="#")