Skip to content

Files

Latest commit

 

History

History
53 lines (38 loc) · 936 Bytes

invalid-overridden-method.md

File metadata and controls

53 lines (38 loc) · 936 Bytes

Pattern: Invalid overridden method

Issue: -

Description

Used when we detect that a method was overridden as a property or the other way around, which could result in potential bugs at runtime.

Example of incorrect code:

class SuperClass(metaclass=abc.ABCMeta):
    @property
    @abc.abstractmethod
    def prop(self):
        pass

    @abc.abstractmethod
    def method(self):
        pass


class NoProp(SuperClass):
    def prop(self):  # [invalid-overridden-method]
        return None

    @property
    def method(self): # [invalid-overridden-method]
        return None

Example of correct code:

class SuperClass(metaclass=abc.ABCMeta):
    @property
    @abc.abstractmethod
    def prop(self):
        pass

    @abc.abstractmethod
    def method(self):
        pass


class Prop(SuperClass):
    @property
    def prop(self):
        return None

    def method(self):
        pass