I wanted to use overloaded version of _get_all() in _get_all_odd(), is there a way to do it?
Calling it as BaseClass._get_all() raises an exception "Must be overloaded",
calling it _get_all() gives a not recognised error.
########################################################################
class BaseClass:
  @staticmethod
  def _get_all():
    raise Exception("Must be overloaded")
  @staticmethod
  def _get_all_odd():
    result = [sh for sh in BaseClass._get_all() if sh%2 == 1]
    return result
##################################################################
class Shape(BaseClass):
  __all_shapes = [1, 2, 3]
  @staticmethod
  def _get_all():
    return Shape.__all_shapes
print(Shape._get_all_odd())
 
    