I have a subclass that adds graphics capabilities to a superclass that implements the algorithms. So, in addition to a few extra initialization functions, this subclass will only need to refresh the graphics after the execution of each algorithm-computing function in the superclass.
Classes:
class graph(algorithms):
  ... #initialization and refresh decorators
  @refreshgraph
  def algorithm1(self, *args, **kwargs):
    return algorithms.algorithm1(self, *args, **kwargs)
  @refreshgraph
  def algorithm2(self, *args, **kwargs):
    return algorithms.algorithm2(self, *args, **kwargs)
  ... #and so on
Is there an pythonic way to automatically decorate all the non-private methods defined in the superclass, such that if I add a new algorithm there I don't need to explicitly mention it in my subclass? I would also like to be able to explicitly exclude some of the superclass' methods.
 
     
     
    