私のアプローチが良いデザインかどうかはわかりませんが、ヒントを得られることを望んでいます。私は抽象的なメソッドの線に沿ってどこかを考えていますが、この場合、メソッドをオプションにしたいです。これが私が今やっている方法です...
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()
上記の例では、PyMEL for Mayaで2つの円弧を作成していますが、createDriversメソッドがある場合とない場合があるサブクラスをさらに作成するつもりです。だから私はそれをオプションにしたいのですが、私のアプローチが改善できるかどうか疑問に思っています。