クラス ( )のパラメータに基づいて、特定の関数セット (この場合は 、 、および ) を割り当てたいクラス ( )がありnode
ます。a1
a2
b1
b2
operatingMode
状況は、多くの異なる動作モードを持つモーターを持っているということです。各動作モードでは、特定の機能を実行できますが、他の機能は実行できません。さまざまなモードへの関数の割り当ては、各操作モードのクラスを作成するのに適していない方法で行われます。
以下は私の解決策ですが、うまくいきません。
何かご意見は?
def a1(self):
return 'a1'
def a2(self):
return 'a2'
def b1(self):
return 'b1'
def b2(self):
return b2
class node(object):
def __init__(self,operatingMode):
self.operatingMode=operatingMode
if self.operatingMode=='A':
self.a1function=a1
self.a2function=a2
print 'Operating Mode \'A\' functions loaded'
if self.operatingMode=='B':
self.b1function=b1
self.b2function=b2
print 'Operating Mode \'B\' functions loaded'
def setOperatingMode(self,operatingMode):
self.operatingMode=operatingMode
self.__init__(self,operatingMode)
端末でこれを実行すると呼び出すことができますが、elbow を 2 回宣言する必要があります。
In [65]: elbow=node('A')
Operating Mode 'A' functions loaded
In [66]: elbow.a1function(elbow)
Out[66]: 'a1'
実行しようとするelbow.setOperatingMode('B')
とエラーが発生します。