Should I be using abstract methods in this Python scenario?
        Posted  
        
            by 
                sfjedi
            
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by sfjedi
        
        
        
        Published on 2011-01-16T08:57:33Z
        Indexed on 
            2011/01/16
            9:53 UTC
        
        
        Read the original article
        Hit count: 260
        
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...
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()
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—well, if my approach could be improved?
© Stack Overflow or respective owner