报告声明的形参和实际实参之间的差异,也报告不正确的实参(例如重复的命名实参和不正确的实参顺序)。

示例:

class Foo:
    def __call__(self, p1: int, *, p2: str = "%"):
        return p2 * p1


bar = Foo()
bar.__call__() # 形参未填
bar(5, "#") # 非预期实参

正确的代码段如下所示:

class Foo:
    def __call__(self, p1: int, *, p2: str = "%"):
        return p2 * p1


bar = Foo()
bar.__call__(5)
bar(5, p2="#")