我有一个类 ( 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)
在我的终端中运行它可以让我调用它,但我必须两次声明肘部:
In [65]: elbow=node('A')
Operating Mode 'A' functions loaded
In [66]: elbow.a1function(elbow)
Out[66]: 'a1'
尝试运行会elbow.setOperatingMode('B')
产生错误。