我有以下代码,它定义了一个Action
对象,该对象封装了带有附加元素的简单类方法(为简单起见,这里仅包含name
),然后是一个{{1} }包含动作及其相应执行功能的类,作为类方法。
ActionContainer
代码执行两个已定义的操作,这些操作通过def log(msg):
print(msg)
class Action:
def __init__(self,name,function):
self.name = name
self.function = function
def execute(self):
self.function()
class ActionContainer:
def __init__(self):
self.a1 = Action('action1',self.anAction)
self.a2 = Action('action2',self.anotherAction)
def anAction(self):
log("foo")
def anotherAction(self):
log("bar")
actions = ActionsContainer()
actions.a1.execute()
actions.a2.execute()
函数先打印log
,然后打印foo
。 我的目标是使用此bar
函数来打印作为参数传递的消息,以正在执行的当前操作的名称为前缀 。
在这里,它会给出类似log
,然后是[action1] foo
的信息。
但是我无法从执行函数中恢复到[action2] bar
对象。我该怎么办?