跳到内容

super-call-with-parameters (UP008)

添加于 v0.0.155 · 相关议题 · 查看源码

源自 pyupgrade linter。

有时提供修复。

作用

检查传入了冗余参数的 super 调用。

为什么这不好?

在 Python 3 中,当满足以下条件时,可以不带任何参数调用 super:(1) 第一个参数是 __class__,且 (2) 第二个参数等同于所在方法的第一个参数。

尽可能省略 super 的参数,以使代码更简洁且易于维护。

示例

class A:
    def foo(self):
        pass


class B(A):
    def bar(self):
        super(B, self).foo()

建议改为

class A:
    def foo(self):
        pass


class B(A):
    def bar(self):
        super().foo()

修复安全性

此规则的修复程序被标记为不安全,因为移除调用中的参数可能会删除附加在参数上的注释。

参考