super-without-brackets (PLW0245)
源自 Pylint 代码检查工具。
修复总是可用的。
作用
检测尝试在不带括号的情况下使用 super。
为什么这不好?
super() 可调用对象 可以在方法定义中使用,以创建一个代理对象,该对象将属性访问委托给当前类的超类。尝试访问 super 本身的属性,而不是调用 super() 返回的对象,将引发 AttributeError。
示例
class Animal:
@staticmethod
def speak():
return "This animal says something."
class Dog(Animal):
@staticmethod
def speak():
original_speak = super.speak() # ERROR: `super.speak()`
return f"{original_speak} But as a dog, it barks!"
建议改为