title: Should I be using abstract methods in this Python scenario?
body: <p>I'm not sure my approach is good design and I'm hoping I can get a tip. I'm thinking somewhere along the lines of an abstract method, but in this case I want the method to be optional. This is how I'm doing it now...</p>
  
  <pre><code>from pymel.core import *
  
  class A(object):
      def __init__(self, *args, **kwargs):
          if callable(self.createDrivers):
              self._drivers = self.createDrivers(*args, **kwargs)
              select(self._drivers)
  
  class B(A):
      def createDrivers(self, *args, **kwargs):
          c1 = circle(sweep=270)[0]
          c2 = circle(sweep=180)[0]
          return c1, c2
  
  b = B()
  </code></pre>
  
  <p>In the above example, I'm just creating 2 circle arcs in PyMEL for Maya, but I fully intend on creating more subclasses that may or may not have a createDrivers method at all! So I want it to be optional and I'm wondering if my approach is&mdash;well, if my approach could be improved?</p>