'OOP in Python beginner issues, finding all methods of the same starting name

I would like to create an abstract method in parent class which would be overridden in subclasses. This method would print all methods in the given subclass which start with 'on_'.

from abc import ABC, abstractmethod

class abstract_class(ABC):
    @abstractmethod
    def get_all_on_methods(self):
        pass

class sub(abstract_class):
    an_object = sub()

    def get_all_on_methods(self):
        for attribute in dir(self):
            if attribute.startswith("on_"):
                print(attribute)

    def nothin(self):
        print("nothin")

    def on_fallback(self):
        raise NotImplementedError()

    def on_no(self):
        raise NotImplementedError()

sub.get_all_on_methods()

I have two problems. First, I have:

Unresolved reference 'sub'

Second, I don't know whether my approach as actually all that good.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source