super-without-brackets (PLW0245)
Derived from the Pylint linter.
Fix is always available.
What it does
Detects attempts to use super
without parentheses.
Why is this bad?
The super()
callable
can be used inside method definitions to create a proxy object that
delegates attribute access to a superclass of the current class. Attempting
to access attributes on super
itself, however, instead of the object
returned by a call to super()
, will raise AttributeError
.
Example
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!"
Use instead: