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!"
建议改为